关于textview显示特殊符号居中的问题
话说这是2017年的第一篇博客,也是一篇技术博客。先从简单的一篇解决问题开始吧,千里之行,始于足下!
--------------------------------------------------------------我是万恶的分割线-------------------------------------------------------------
最近遇到一个问题,textview的显示的数字与***要来回切换显示的,来回显示完全OK的,但是我们美丽温柔可爱的设计师要说***也要居中,不然有点丑了。你看,刚才前面的那个【星星】也不居中。为了不在她面前说丢面子,我立马拍着胸脯说:可以,让我想个法子,让它居中。请您睁大眼睛看好,当我点击那个眼睛来回切换的时候,余额(元)右边的的效果,那四个星星是不是有点偏上,不居中。

我刚开始的解决方案是在星星右边的再加个textview布局,也显示星星,让它的margintop等于几个DP,这样看起来就居中了,然后隐藏或者显示,这样显示效果不理想,而且代码比较繁琐,一会gone一会visible
了,我就想这样后期维护不太方便了,被后来的人骂了就不好了,作为一个程序员谁也不想被人骂,对吧。于是,我就换个方法了。我记得之前在《Android开发艺术探索》里看到View动画,想让一个button在界面上
向右移动100个像素,书上的做法是 param.rightMargin+=100。既然能让这个button右移动100个像素,那我肯定也可以让一个textview往下移动几个像素啊,这样不就看起了居中了吗? 很激动,是吧,当时运行完代码,
我也是很激动,但是当你不停来回切换的时候

是不是发现显示数字的时候,数字越来越偏下,当时我觉得也奇怪。后来突然想到为了保证小星星居中,我只想到 param.topMargin+=6,这样这个textview,每切换一次就会向下移动6个像素,当显示数字的时候
它当然也偏下啊,所以就越来越往下移动啊,就是上图看到的效果啊。 后来改了代码,
ViewGroup.MarginLayoutParams param= (ViewGroup.MarginLayoutParams) balanceValue.getLayoutParams();
if(flag){
balanceValue.setText("****");
param.topMargin+=6;
flag=false;
}else{
flag=true;
balanceValue.setText("123");
param.topMargin-=6;
}
当然这里的123是随便写的。然后看看最终的效果图吧

是不是完美实现居中了,最后设计师说可以了,呵呵。这是我想到一个解决方案,其他更好的解决方案我目前还没想到,如果有请告诉我吧,可以讨论讨论!
关于textview显示特殊符号居中的问题的更多相关文章
- 用CSS正确显示人民币符号的HTML转义字符
做电子商务的难免要跟钱打交道,特别是跟人民币接触更多,但人民币符号长什么样呢,是¥还是¥?糊涂了吧^~^,要知道答案很简单,找出一张新的一百元大钞,在背面看看那个防伪的银线,上面就有. 我们做网页时要 ...
- TextView 显示内容时出现 ArrayIndexOutOfBoundsException 的解决方法(Android 4.1)
很久以前做的表情输入及显示,用的系统的SpannableString,完成后的代码在其他版本的Android手机上没有问题,但是在在4.1和4.1.1的手机上显示时,有概率出现程序崩溃的问题. 下面是 ...
- textview 显示html方法解析
现在网络的繁盛时代,光文字是不能满足人们的胃口的,图片,flash,音频,视频就成为浏览网页的主流显示,在手机上也一样.在手机上显示从网络端获取的数据显示,大家很自然的想起两种方式,一种就是webvi ...
- Android项目实战(十四):TextView显示html样式的文字
项目需求: TextView显示一段文字,格式为:(消息个数,不确定)条消息 这段文字中名字和数字的长度是不确定的,还要求名字和数字各自有各自的颜色. 一开始我想的是用(转) SpannableStr ...
- Android设置TextView显示一行或多行
在listView的item中或者是特殊的业务需求中,会要求TextView的内容不完全显示,只有通过一个指定的操作后才显示所有的,比如说一个按钮或者是其它的什么控件. 要想实现这个效果并不难,只要控 ...
- android 显示特殊符号
http://hsx9566.iteye.com/blog/1305052 在android上使用ASCII显示特殊符号 在xml中表示如下: <string name="symbol ...
- 设置TextView显示的文字可以复制
设置TextView显示的文字可以复制 效果图 在xml中设置 <TextView android:layout_width="wrap_content" android:l ...
- ruby在index页面显示货币符号
1.显示人民币符号 <td><%= number_to_currency product.price, unit: "¥" %></td> 2. ...
- TextView显示内容不全
今天开发遇到一个问题,发现TextView显示不全,很纳闷,看图: 正常情况应该是这个样子的: 造成这种情况的原因是: TextView被快速并且多次的设置内容值造成的. 我的场景: 我点击全选按钮, ...
随机推荐
- Vue.js 和 MVVM 小细节
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...
- DDR的前世与今生(一)
作者:一博科技 DDR SDRAM全称为Double Data Rate SDRAM,中文名为"双倍数据率SDRAM".DDR是在原有的SDRAM的基础上改进而来,严格的说DDR应 ...
- MySQL数据库和InnoDB存储引擎文件
参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...
- Discuz NT 架构剖析之Config机制
接触了Discuz NT! 一段时间了,是时候做个总结了,标题好霸气,有木有? 都是托园子里的大牛代振军的福啊,哈哈哈哈. 首先论坛的信息不是完全存储在数据库里面的,一部分信息存储在config文件里 ...
- Objective-C枚举的几种定义方式与使用
假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...
- dedecms 后台栏目添加图片
前台调用栏目时需要显示图标,整理一下: 第一步:“系统->SQL命令工具” , 插入sql语句 alter table dede_arctype add typeimg varchar() 第二 ...
- 使用HTML5的cavas实现的一个画板
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-e ...
- 一个软件开发者的BPM之路
我是小林,一名普通的软件工程师,从事BPM(业务流程管理)软件开发工作.我没有几十年的技术底蕴,无法像大牛们一样高谈阔论,品评BPM开发之道:也不是资深的流程管理专家,能与大家分析流程管理的时弊.我只 ...
- FineReport如何用JDBC连接阿里云ADS数据库
在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...