设置EditText的hint字体大小

背景:

EditText能设置hint的颜色,但是却不能设置hint的字体大小,导致hint的字体和text的字体是一样的。但有时hint较长,需要把字体缩小。

解决方案:

/**
     * 设置EditText的hint字体大小
     *
     * @param editText EditText控件
     * @param hintText hint内容
     * @param size     hint字体大小,单位为sp
     */
    public static void setEditTextHintWithSize(EditText editText, String hintText, @Dimension int size) {
        if (!TextUtils.isEmpty(hintText)) {
            SpannableString ss = new SpannableString(hintText);
            //设置字体大小 true表示单位是sp
            AbsoluteSizeSpan ass = new AbsoluteSizeSpan(size, true);
            ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            editText.setHint(new SpannedString(ss));
        }
    }

调用样例:

EditText控件:editText

hint内容:测试hint

hint字体大小:18

setEditTextHintWithSize(editText,"测试hint",18);

image.gif

注意:上面的“hint字体大小”如果不是直接传入dp数字值,而是从dimension中读取的话,一定要传入dp值,而不是像素值。下面给出从dimension中传入字体大小的样例(dimension key为:edit_text_size):

setEditTextHintWithSize(editText,"测试hint",(int)(getResources().getDimension(R.dimen.edit_text_size)/getResources().getDisplayMetrics().density));

但是此方案在小米部分手机上会有问题,更完善的方案见:https://www.jianshu.com/p/c5c10e5daa2e

安卓开发技术分享: https://www.jianshu.com/p/442339952f26

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 每个人的童年都是美好的,那个时候,我们每个人都有一颗纯洁的心,单纯而快乐。因为幼稚,因为辨别力差,也容易轻信,让心...
    王虎林阅读 360评论 0 1
  • 最近入坑子弹笔记,在网上买了一本点阵本以后就开始研究如何做子弹笔记。正好有写文计划,所以决定边学边分享。这是我的教...
    胡姑娘阅读 1,422评论 1 7
  • 跟朋友在一起的时候,感受到被爱,不用拘束,放得开,有一种莫名的安全感。这时候,是最健康的。 如果遇到的每个人都是朋...
    写不完先生阅读 195评论 0 0