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

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

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

猜你喜欢

转载自blog.csdn.net/yinxing2008/article/details/82588923
今日推荐