转载地址:点击打开链接

在一个登录界面有帐号和密码两个EditText,但是却发现两个EditText的hint的英文字体不同,看着极不协调。但是两个EditText都没有特意设置过hint的字体啊···

经实验,把密码栏的android:password="true"属性去掉后字体变一样。应该是这个属性的影响。

经查,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);

这样字体就和谐了~


更多相关文章

  1. 【Android】Android 手机忘记锁屏密码的解决办法
  2. Android 实现记住用户名和密码的功能
  3. Android 模拟登陆 保存密码(信息)到手机中 文件信息读取
  4. android edittext password hint字体不同于别的字体的解决
  5. Android tab 背景及字体颜色设置
  6. Android TabLayout设置选中状态标题字体大小,粗细

随机推荐

  1. 如何下载Android(安卓)kernel内核源代码,
  2. 快捷方式工具类
  3. Android一个等待进度条的例子
  4. android 网络获取图片并存储
  5. android判断当前设备的支持哪些Feature
  6. Android全屏设置方法
  7. Android文件读写
  8. android闹钟(四):实现计时器
  9. TextView和EditText
  10. 23_传智播客Android视频教程_网络通信之