XML 中 EditText 的提示大小
Hint size of an EditText in XML
我希望 EditText
的 hint
大小小于实际文本。
目前我知道两种解决方案:
以编程方式使用 Html.fromHtml()
,或
在 XML.
中使用 <font size="">
但是,我不想使用第一个解决方案,因为我希望将提示直接写在我的布局中XML,而对于第二个解决方案,我不喜欢使用font
元素,因为(如果我没记错的话)我无法明确 dp
度量。此外,font
元素在 HTML5 中已弃用,因此它属于 "old-style".
我尝试在 XML 中使用具有 font-size
属性(来自 CSS)的 span
元素,但它不起作用。还有其他最新的解决方案吗?
我不知道有什么方法可以通过 xml 完成此操作(除了在提示文本中粘贴 html 标签)。
但是上面没有列出另一种方法,它允许您将字体大小保持在 sp 中并与 java 代码分开:
final int hintSize = <read_this_from_xml_resources_but_take_into_account_density>;
final int textSize = <read_this_from_xml_resources_but_take_into_account_density>;
editText.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence arg0, int start, int before, int count) {
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, arg0.length() > 0 ? textSize : hintSize);
}
});
我希望 EditText
的 hint
大小小于实际文本。
目前我知道两种解决方案:
以编程方式使用
Html.fromHtml()
,或在 XML.
中使用
<font size="">
但是,我不想使用第一个解决方案,因为我希望将提示直接写在我的布局中XML,而对于第二个解决方案,我不喜欢使用font
元素,因为(如果我没记错的话)我无法明确 dp
度量。此外,font
元素在 HTML5 中已弃用,因此它属于 "old-style".
我尝试在 XML 中使用具有 font-size
属性(来自 CSS)的 span
元素,但它不起作用。还有其他最新的解决方案吗?
我不知道有什么方法可以通过 xml 完成此操作(除了在提示文本中粘贴 html 标签)。
但是上面没有列出另一种方法,它允许您将字体大小保持在 sp 中并与 java 代码分开:
final int hintSize = <read_this_from_xml_resources_but_take_into_account_density>;
final int textSize = <read_this_from_xml_resources_but_take_into_account_density>;
editText.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence arg0, int start, int before, int count) {
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, arg0.length() > 0 ? textSize : hintSize);
}
});