Widget - TextView
狗血自嘲:能飞却懒得飞,想飞却没有翅膀
已知问题
setText 卡顿
发现起因:自制仿小米日历,滑动超级卡,逐行注释代码发现
setText会严重卡顿,注释掉后会好很多
解决过程:优先百度,查到一篇文章
http://www.cnblogs.com/zmc/p/4477961.html
cv:
setText 之后会执行 checkForRelayout 函数
函数注释:
Check whether entirely new text requires a new view layout or merely a new text layout.
总结:当用到大量TextView时,优先给TextView 确定的宽度
个性化设置文本颜色
1.SpannableStringBuilder
设置背景 BackgroundColorSpan
设置前景 ForegroundColorSpan
代码参考:
String str="这是设置TextView部分文字背景颜色和前景颜色的demo!";
int bstart=str.indexOf("背景");
int bend=bstart+"背景".length();
int fstart=str.indexOf("前景");
int fend=fstart+"前景".length();
SpannableStringBuilder style=new SpannableStringBuilder(str);
style.setSpan(new BackgroundColorSpan(Color.RED),bstart,bend,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.RED),fstart,fend,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
TextView tv=(TextView) findViewById(R.id.tv_color);
tv.setText(style);
参考:
http://blog.csdn.net/fengkuanghun/article/details/7904284
2.Html
代码参考:
tv.setText(Html.fromHtml("<font color='black'>订单号:</font>"+"<font color='#3ECAF8'>"+mOrderId+"</font>"));
参考:
http://blog.csdn.net/johnsonblog/article/details/7741972
遗憾之处:
此方法颜色设置好像无法传 透明度 ,直接从color.xml 读取颜色值后不好直接用,因为会有 透明度
不常用玩意(真的不常用?瞎扯吧)
参考:http://blog.csdn.net/qy1387/article/details/8534173
autoLink 差不多超链的意思,包含url/email/phone/map
注释:
Controls whether links such as urls and email addresses are automatically found and converted to clickable links
textColorLink 文字连接的颜色
digits 限制字符
注释:
If set, specifies that this TextView has a numeric input method and that these specific characters are the ones that it will accept.
drawableLeft|Right|Top|Bottom 文字周围放置图片
drawablePadding 文字与图片间距
ellipsize 文字很长的时候的样式,包含start/end/middle/ marquee
注释:
If set, causes words that are longer than the view is wide to be ellipsized instead of broken in the middle.
marqueeRepeatLimit 跑马灯效果重复次数
注释:
The number of times to repeat the marquee animation
gravity 内容位置
ems N个字符的宽度
maxEms 最长为N个字符的宽度 与ems同时使用时覆盖ems选项
minEms 最短为N个字符的宽度 与ems同时使用时覆盖ems选项
lineSpacingExtra 行间距
注释:
Extra spacing between lines of text.
lineSpacingMultiplier 行间距的倍数
注释:
Extra spacing between lines of text, as a multiplier
password 密码样式(就是看不到了)
phoneNumber 电话号码
scrollHorizontally 横着滚动
注释:
Whether the text is allowed to be wider than the view (and therefore can be scrolled horizontally).
shadowRadius 阴影半径
注释:
Radius of the shadow
textAppearance 文字外观
可设置的值:
textAppearanceButton
textAppearanceInverse
textAppearanceLarge
textAppearanceLargeInverse
textAppearanceMedium
textAppearanceMediumInverse
textAppearanceSmall
textAppearanceSmallInverse
注释:
Base text color, typeface, size, and style
textColorHighlight 被选中文字的底色,默认为蓝色
注释:
Color of the text selection highlight
textColorHint 设置提示文字的颜色,默认为灰色
注释:
Color of the hint text