1.工作中遇到一个问题,就是自定义EditText的hint提示在超大字体下会显示不全,
2.然后在网上搜索了一下,在这里记录一下,分享给大家,在此感谢写这的大神
3.传入的hint是SpannedString或者Spanned类型,就可以保持文本的自定义属性了
import android.text.SpannableString;
import android.text.Spanned;
import android.text.SpannedString;
import android.text.style.AbsoluteSizeSpan;
import android.app.Activity;
import android.widget.EditText;
import android.widget.TextView;
EditText editText = (EditText) rootView.findViewById(R.id.et);
// 新建一个可以添加属性的文本对象
SpannableString ss = new SpannableString("testString");
// 新建一个属性对象,设置文字的大小
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(8,true);
// 附加属性到文本
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 设置hint
editText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失
但是我想说的是我找到了自定义控件的布局文件<com.android.xx.xx.RecipientsEditor
android:id="@+id/recipients_editor"
android:hint="@string/to_hint_ipmsg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:inputType="textFilter"
android:textColorHint="@color/conv_item_date_subjectr_text"
android:paddingStart="16dip"
android:layout_weight="1"
android:textColor="#000000"
/>
然后将android:layout_height="match_parent"改成android:layout_height="wrap_content"也实现了在超大字体下hint提示语显示完整的效果,而且还可以跟着随意切换字体大小而改变hint提示语的大小,所以我觉得这个简单些,比上一个把hint提示语字体大小写固定要好的多。
时间: 2024-11-02 09:11:02