zoukankan      html  css  js  c++  java
  • Android下EditText中的字体不统一问题

    好久没写,今天心情好略记下解决的某bug

    在一个登录界面有帐号和密码两个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);

    这样字体就和谐了~


    EditText password = (EditText) findViewById(R.id.register_password_text);
    password.setTypeface(Typeface.DEFAULT);
    password.setTransformationMethod(new PasswordTransformationMethod());

    此外需要去除xml中的android:password="true"语句


  • 相关阅读:
    SCAU 12新生赛 H 拥挤的华农校巴
    C#实现让CPU占用率曲线听你的指挥 可指定运行核心
    追MM与设计模式的有趣见解
    FTP操作类
    怎么知道页面被放大缩小了
    SerialPort同步和异步数据读取
    Java Web 应用程序转换为 ASP.NET
    ASP.NET中进行消息处理(MSMQ)
    解压缩文件类
    怎样成为优秀的软件模型设计者?
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3285572.html
Copyright © 2011-2022 走看看