您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

设置EditText的hint字体大小

蓝不蓝编程 发布时间:2018-09-10 14:19:12 ,浏览量:0

背景:

      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);

注意:上面的“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

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0601s