有没有办法在xml资源文件中引用具有修改后的alpha值的颜色资源?我正在寻找的是这样的:
<!-- base color -->
<color name="myColor">#19AEE0</color>
<!-- redefined color with alpha - not particularly elegant -->
<color bane="myColor2">#8019AEE0</color>
<!-- referenced color with alpha -->
<color name="myColorTransparent" alpha="0.5">@color/myColor</color>
我知道这可以通过编程方式轻松完成,但在为同一颜色定义多个透明度值时,以声明方式执行此操作会更清晰,更易读。
答案 0 :(得分:1)
可以使用以下代码完成:
<color name="myColorTransparent">#ff333333</color>
第一个字母是alpha值。查看here以获取所有有效值的列表。
最后六个是您的标准十六进制颜色代码。
答案 1 :(得分:1)
可能为时已晚,但是我希望这对遇到此问题的任何人都可以有所帮助。
使用颜色强调点搜索了可绘制波纹的特定情况后,我发现可以借助<selector>
来完成。
添加color
资源文件夹(如果不存在)并在那里创建一个新文件,其基本名称将用作颜色资源。例如,将其命名为my_color_transparent.xml
。然后,粘贴以下内容。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:color="@color/myColor"
android:alpha=".5" />
</selector>
这时,您可以通过XML或像往常一样以编程方式(例如@color/my_color_transparent
文件夹中的颜色)将其引用为values
。
注意:
android:alpha
属性被用作遮罩,因此alpha乘以android:color
属性中指定的颜色的alpha。例如,如果@color/myColor
的不透明度为20%,并且android:alpha
设置为.5
,那么@color/my_color_transparent
的不透明度为10%。