为预定义颜色设置alpha分量

时间:2015-07-10 18:42:23

标签: android

在Android上有一种简单的方法来设置从getResources().getColor(id)检索到的颜色的alpha分量吗?

例如,我正在做的是将现有颜色更改为70%不透明度:

DrawerLayout drawerLayout = ...;

int color = getResources().getColor(R.color.bgColor);
color &= 0x00FFFFFF;
color |= (((int) (0.7 * 0xFF)) << 24);

drawerLayout.setScrimColor(color);

1 个答案:

答案 0 :(得分:2)

使用帮助程序类Color。您可以轻松检索四个组件,alpha,red,green和blue,并使用Color.argb将其设置回来。该类只有静态方法,您不需要实例化它。 E.g。

int alpha = Color.alpha(color);
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);

int newColor = Color.argb((int)(alpha * 0.7f), red, green, blue);

Here您可以找到文档