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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值