以编程方式使颜色更透明

Tro*_*lli 26 android colors transparent

我正在研究一个简单的条形图应用程序,它使用静态颜色数组来分割条形颜色.我希望功能可以正常绘制条形,或略微透明.

有没有办法以编程方式调整颜色整数,使其略微透明?或者我是否必须静态定义每种颜色的透明版本,然后在我想要透明度时切换到使用这些版本?

Ant*_*byh 76

如果您使用的是支持库,则可以使用ColorUtils.setAlphaComponent(int color, int alpha).如果您不使用支持库,那么从其源代码中获取的单行解决方案是:

int res = (color & 0x00ffffff) | (alpha << 24);

  • I'_With_Stupid在0到255之间更精确 (2认同)

spa*_*ygw 10

当然......看看Color,它有一个功能:

static int   argb(int alpha, int red, int green, int blue)
Run Code Online (Sandbox Code Playgroud)

从alpha,red,green,blue组件返回color-int.

因此,您的RGB值可能是静态的,您只需碰撞alpha值即可获得颜色的新透明版本.

  • 万分感谢!对于那些想知道如何从整数获取RGB值的人,请看一下:http://stackoverflow.com/questions/5526690/convert-a-raw-negative-rgb-int-value-back-to-一个-3-号码-RGB值 (2认同)

Joa*_*zzi 7

嗨,您可以使用:

android.support.v4.graphics.ColorUtils#setAlphaComponent

注意:此处的Alpha是从0到255,而不是基于%。

那里还有其他使用方法,例如合同和亮度计算。

问候