引用主题属性

文档里写的引用主题属性的方法如下:

?[<package_name>:][<resource_type>/]<resource_name>

这种引用方法只能在xml文件中使用。

?表示引用属性,当使用这个属性的时候,资源工具会从当前的主题样式中查找这个资源名称,可以不用指名具体是类型。

用于主题的样式如下:

<style name="Theme.XXXX" parent="@android:style/Theme.Light.NoTitleBar">
	<item name="android:windowAnimationStyle">@style/Animation.Activity.XXXX</item>
	<item name="android:textColorHint">@color/red</item>
</style>

其中有一个属性的名称为:android:textColorHint,如果想在xml文件中引用这个属性的值,做法如下:

<TextView
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="主 页"
	android:textColor="?android:textColorHint"/>

这样这个TextView的字体颜色就会和主题样式的<item name="android:textColorHint"></item>的值一样了


把主题样式和TextView的写法改成如下,也可以达到要求:

<style name="Theme.XXXX" parent="@android:style/Theme.Light.NoTitleBar">
	<item name="android:windowAnimationStyle">@style/Animation.Activity.XXXX</item>
	<item name="android:textColorHint">@color/red</item>
	<item name="android:textColor">@color/red</item>
</style>

<TextView
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="主 页"/>

这样的话,TextView的颜色会和主题里的android:textColor的颜色的值一样,如果主题样式中没有属性android:textColor,则TextView会显示其默认值

 

注意:这个默认值和不设主题的默认值是不一要样的,如果不设主题样式,则其默认值由机器来决定,如果设置了主题样式,但主题样式中没有这个属性android:textColor,则应该是由其内部的代码所决定的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值