近期,测试项目时,从Pad端切换到手机端时,有些提示语句会很大,无法全部显示,而因为控件是EditText,没有设置Hint文本Size的方法,所以只能从代码入手了!

先发解决办法(不会影响textSize):

EditText edit =  (EditText) rootView.findViewById(R.id.edit);
SpannableString ss = new SpannableString("格式:00'00''00");//定义hint的值
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(12,true);//设置字体大小 true表示单位是sp
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);// 附加属性到文本
edit.setHint(new SpannedString(ss));

然后,在看解决的思路:
因为EditText继承自TextView,所以直接查看TextView的源码来查找,在源码中有这么一段方法:
在这里插入图片描述
通过源码,我们可以看见,首先传入的是CharSequence 类型,这样我们就可以对传入的值进行自定义属性设定了,并且下一步处理的方法是:
在这里插入图片描述
从这段代码中可以看见,传入的值是SpannedString或者Spanned类型,就可以保持自定义的属性,就可以修改字体大小和颜色了!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐