最近在做公司的一个项目时由于需要适配多语言,而翻译成俄语,阿拉伯语时提示字符串超出了控件的长度,增大控件是不可行的,最容易想到的就是设置hintsize,可是textview中压根就找不到这个属性,没办法就只能自己想办法,Android源码是我们遇到困难时的最好老师,基本上所有的问题都可以从源码中抽象出答案,但是有时没有方向的话确实也很麻烦,我就顺手整理一下最近遇到的一个问题,以备不时之需。
Spannable可能有人知道,不过官方文档的解释有点太少了,一般人根本就看不出什么有价值的线索,下面针对本文主题来讲解一下他的使用
SpannableString ss = new SpannableString(getResources().getString(
R.string.activecodemsg));
// 新建一个属性对象,设置文字的大小
ass = new AbsoluteSizeSpan(15, true);
// 附加属性到文本
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 设置hint
editText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失
Spannable的作用还有很多,一般用在自定义TextView中,还可以用来设置字体,大小,颜色,样式,以及超级链接等属性