Android主题:我可以将alpha值设置为现有颜色吗?

时间:2015-01-30 20:57:54

标签: android theming

因此,如果我为某个小部件定义样式,并希望将文本颜色设置为某种预定颜色+某些透明度。 通常,我会像这样(过度简化)定义它:

<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具体)

最好的方法是什么?

2 个答案:

答案 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);
}