因此,如果我为某个小部件定义样式,并希望将文本颜色设置为某种预定颜色+某些透明度。 通常,我会像这样(过度简化)定义它:
<item name="android:textColor">#a0ffffff</item>
但是,我希望能够这样做:
<color name="textTitle">#ffffff</color>
<item name="android:textColor">#a0 | @color/textTitle</item>
<item name="android:someotherColor">#70 | @color/textTitle</item>
我希望#a0
和#70
表示我想要的透明度,而@color...
表示某种预定义的颜色(我可能不知道,因为它的ROM具体)
最好的方法是什么?
答案 0 :(得分:1)
您可以将颜色直接设置为@ color / textTitle,并使用android:alpha
分别设置Alpha值。
答案 1 :(得分:1)
支持库有辅助方法ColorUtils.setAlphaComponent(int color, int alpha)
。
这是来源。
/**
* Set the alpha component of {@code color} to be {@code alpha}.
*/
public static int setAlphaComponent(int color, int alpha) {
if (alpha < 0 || alpha > 255) {
throw new IllegalArgumentException("alpha must be between 0 and 255.");
}
return (color & 0x00ffffff) | (alpha << 24);
}