Android资源之String (三): html标签,语法(原生支持) 设置字体大小/颜色/下划线等

6 篇文章 0 订阅
5 篇文章 0 订阅

原生就支持的部分html语法

官方 Supported HTML elements include: 给出了 b,i,u,但是实际上支持的还有。 

根据 
StringBlock.java ( frameworks\base\core\java\android\content\res) 
的 get 方法源码可知,有以下类型可以支持。 

"b");      ==>StyleSpan(Typeface.BOLD),
"i");        ==> StyleSpan(Typeface.ITALIC),
"u");       ==> UnderlineSpan
"tt");       ==> TypefaceSpan("monospace"),
"big");     ==> RelativeSizeSpan(1.25f),
"small");  ==> RelativeSizeSpan(0.8f),
"sup");    ==> SubscriptSpan(), //上下标  
"sub");    ==> SuperscriptSpan(),
"strike");  ==> StrikethroughSpan(), //删除线  
"li");         ==> new BulletSpan(10), //用在首位,多个列表的圆点符号  
"marquee");  TextUtils.TruncateAt.MARQUEE

由其applyStyles 方法可知还支持 
"font;": 
    ";height="     ==> Height(size),
    ";size="          ==> AbsoluteSizeSpan(size, true),
    ";fgcolor="     ==> ForegroundColorSpan(c);
    ";color="         ==> ForegroundColorSpan(c);
    ";bgcolor="    ==> BackgroundColorSpan(c);
     ";face="          ==> TypefaceSpan(sub),
“a;”:
    ”;href=“   ==> URLSpan(sub),

"annotation;"  ==> Annotation(key, value),

参考:
<string name="test">bold for <b>test</b> small for <small>this is the small string</small></string>
<string name="sms_short_code_details">This <font fgcolor="#ffffb060">may cause charges</font> on your mobile account.</string>
其中font的颜色既fgcolor属性要以Android的颜色格式指定,比如 #FF00FF00 ,要带上前面的透明度,不然透明度默认是0,既类似 #00FF0000 这样,会把字弄没。 

标准HTML标签

方法1、使用 CDATA(推荐)
<string name="demoStr"><Data><![CDATA[ <b>ABC</b> ]]> </Data></string>
方法2、转义HTML标签
<string name="myHeadStr">&lt;b>&lt;u>bold, underline &lt;/u>&lt;/b></string>
在程序里引用:
Html.fromHtml(getResources().getString(R.string.myHeadStr));

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设置 `<PreferenceCategory>` 控件中的 `title` 字体大小颜色,可以通过自定义主题(Theme)来实现。 首先,在 `styles.xml` 文件中定义一个主题,代码如下: ``` <style name="PreferenceCategoryTitleStyle"> <item name="android:textSize">18sp</item> <item name="android:textColor">#000000</item> <item name="android:textStyle">bold</item> </style> ``` 在上述代码中,我们设置了 `PreferenceCategoryTitleStyle` 主题的字体大小为 18sp,颜色为黑色,加粗。 接下来,在 `styles.xml` 文件中定义一个继承自 `Preference` 的样式,代码如下: ``` <style name="PreferenceCategoryStyle" parent="Preference"> <item name="android:layout">@layout/preference_category</item> <item name="android:titleTextStyle">@style/PreferenceCategoryTitleStyle</item> </style> ``` 在上述代码中,我们设置了 `PreferenceCategoryStyle` 样式的 `android:layout` 属性为自定义的 `preference_category` 布局文件,并设置了 `android:titleTextStyle` 属性为自定义的 `PreferenceCategoryTitleStyle` 主题。 接下来,在 `res/layout` 文件夹下新建一个名为 `preference_category.xml` 的布局文件,代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:textAppearance="?android:attr/textAppearanceListItem" android:textColor="?android:attr/textColorPrimary" /> ``` 在上述代码中,我们使用一个普通的 TextView 控件作为 `PreferenceCategory` 的标题,并设置了一些默认的属性。 最后,在布局文件中使用自定义的 `PreferenceCategoryStyle` 样式,代码如下: ``` <PreferenceCategory android:key="allowed" android:title="@string/allowed_header" style="@style/PreferenceCategoryStyle" /> ``` 这样就可以设置 `<PreferenceCategory>` 控件中 `title` 的字体大小颜色了。通过自定义主题和样式可以实现对所有 `Preference` 控件的样式统一管理和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值