关于使用Html方法设置控件文字大小无效的有关问题
关于使用Html方法设置控件文字大小无效的问题
我使用了一组RadioButton,并在程序中动态设置文字,我希望的效果是,“名称 编号”,其中编号的字号要大一些。
于是使用
setText(Html.fromHtml(name + "<font size=\"30\" >"+str+"</font>"));
但是却没有任何变化,我以为是这地方是用不了这种方式,又试了
setText(Html.fromHtml(name + "<font color=\"BLUE\">"+str+"</font>"));和
setText(Html.fromHtml(name + "<h5>"+str+"</h5>"));
结果文字都反映出了我要的变化,唯独是字号大小改变不了。
我又猜测是不是跟布局中
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_height">0dp</item>
这样的设置有关,于是改成
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
但还是无效。
哪位大神给分析分析咋回事,为啥改变颜色什么的都正常,就是无法增大字号呢
------解决思路----------------------
可以用SpannableString实现多种效果的文字显示。
//根据要显示的String得到SpannableString
SpannableString span = new SpannableString(String);
//设置需要的字体大小,已经需要设置文本起始位置
span.setSpan(new AbsoluteSizeSpan(30),start,end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(span);
------解决思路----------------------
貌似Android 中对<font>标签不支持size。可以用以下方式放大文字,缩小的话将<big>标签改为<small>
使用font能实现的效果还是有限的,一些复杂的效果使用Spannable实现是个不错的选择。
我使用了一组RadioButton,并在程序中动态设置文字,我希望的效果是,“名称 编号”,其中编号的字号要大一些。
于是使用
setText(Html.fromHtml(name + "<font size=\"30\" >"+str+"</font>"));
但是却没有任何变化,我以为是这地方是用不了这种方式,又试了
setText(Html.fromHtml(name + "<font color=\"BLUE\">"+str+"</font>"));和
setText(Html.fromHtml(name + "<h5>"+str+"</h5>"));
结果文字都反映出了我要的变化,唯独是字号大小改变不了。
我又猜测是不是跟布局中
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_height">0dp</item>
这样的设置有关,于是改成
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
但还是无效。
哪位大神给分析分析咋回事,为啥改变颜色什么的都正常,就是无法增大字号呢
------解决思路----------------------
可以用SpannableString实现多种效果的文字显示。
//根据要显示的String得到SpannableString
SpannableString span = new SpannableString(String);
//设置需要的字体大小,已经需要设置文本起始位置
span.setSpan(new AbsoluteSizeSpan(30),start,end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(span);
------解决思路----------------------
貌似Android 中对<font>标签不支持size。可以用以下方式放大文字,缩小的话将<big>标签改为<small>
// 一次放大
String html1 = "<big><font>编号</font></big>";
// 嵌套可以两次放大
String html2 = "<big><big><font>编号</font></big></big>";
使用font能实现的效果还是有限的,一些复杂的效果使用Spannable实现是个不错的选择。