Android下EditText中的字体不统一问题
2015-12-23 13:43
211 查看
在一个登录界面有帐号和密码两个EditText,但是却发现两个EditText的hint的英文字体不同,看着极不协调。但是两个EditText都没有特意设置过hint的字体啊···
经查,hint字体受EditText的text字体影响,即受android:typeface的影响。android:typeface有三个取值:“sans”,“serif”,“monospace”,而缺省的话普通EditText是Sans,想必密码框的缺省不同的原因。然后将两个EditText设置相同typeface,但是发现能正常改变帐号栏的hint字体,但是密码栏hint字体一直保持是monospace不变。
果断看源码,发现在EditText的初始化中有这么一段:
果然密码框初始化会强制设置字体为MONOSPACE,这样解决就简单了,在代码实现中加上:
还有一种方法:
经查,hint字体受EditText的text字体影响,即受android:typeface的影响。android:typeface有三个取值:“sans”,“serif”,“monospace”,而缺省的话普通EditText是Sans,想必密码框的缺省不同的原因。然后将两个EditText设置相同typeface,但是发现能正常改变帐号栏的hint字体,但是密码栏hint字体一直保持是monospace不变。
果断看源码,发现在EditText的初始化中有这么一段:
if (password) { setTransformationMethod(PasswordTransformationMethod.getInstance()); typefaceIndex = MONOSPACE; }
果然密码框初始化会强制设置字体为MONOSPACE,这样解决就简单了,在代码实现中加上:
idEdit.setTypeface(Typeface.SANS_SERIF); passEdit.setTypeface(Typeface.SANS_SERIF);
还有一种方法:
passEdit.setTypeface(Typeface.DEFAULT); passEdit.setTransformationMethod(new PasswordTransformationMethod());
相关文章推荐
- flash 系统字体显示问题
- C#及WPF获取本机所有字体和颜色的方法
- 谈谈网页设计中的字体应用Font Set
- PDF里的文字显示模糊的解决方法
- 保证可下载的漂亮动作2008奥运比赛项目字体
- C#实现字体旋转的方法
- 网页设计中的 serif 和 sans-serif字体应用
- 优化WordPress的Google字体以加速国内服务器上的运行
- C#实现缩放字体的方法
- ExtJs默认的字体大小改变的几种方法(自己整理)
- 一个实现字体大中小方法的JavaScript代码
- jquery实现实时改变网页字体大小、字体背景色和颜色的方法
- php修改NetBeans默认字体的大小
- 如何解决修改StaticText的字体
- asp.net调用系统设置字体文本框的方法
- C#读取系统字体颜色与大小的方法
- linux BASH shell下设置字体及背景颜色
- 在shell或者perl中改变字体或背景的颜色
- Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)
- android根据分辨率自动调整字体大小的实例代码