关于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被快速并且多次的设置内容值造成的. 我的场景: 我点击全选按钮, ...
随机推荐
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- favicon.ioc使用以及注意事项
1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没 ...
- Android数据加密之SHA安全散列算法
前言: 对于SHA安全散列算法,以前没怎么使用过,仅仅是停留在听说过的阶段,今天在看图片缓存框架Glide源码时发现其缓存的Key采用的不是MD5加密算法,而是SHA-256加密算法,这才勾起了我的好 ...
- javascript中的事件冒泡和事件捕获
1.事件冒泡 IE 的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档).以下面的HTML ...
- Spark踩坑记——数据库(Hbase+Mysql)
[TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...
- pdo的使用
PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据. PDO随 ...
- 代码的坏味道(21)——中间人(Middle Man)
坏味道--中间人(Middle Man) 特征 如果一个类的作用仅仅是指向另一个类的委托,为什么要存在呢? 问题原因 对象的基本特征之一就是封装:对外部世界隐藏其内部细节.封装往往伴随委托.但是人们可 ...
- 了解 ARDUINO 101* 平台
原文链接 简介 作为一名物联网 (IoT) 开发人员,您需要根据项目的不同需求,选择最适合的平台来构建应用. 了解不同平台的功能至关重要. 本文第一部分比较了 Arduino 101 平台和 Ardu ...
- nuget常用命令
nuget命令的用法: 一.安装 1.安装指定版本类库install-package <程序包名> -version <版本号> 2.安装到指定的项目install-packa ...
- Xamarin.Android活动的生命周期
一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...