7

说我有这个代码:

int color = tv.getCurrentTextColor();

我将如何仅更改此颜色的 Alpha?

例如:

如果颜色是0x00ffffff,我将如何将其更改为0xffffffff

有没有一种方法或者我需要做一些十六进制/整数操作?

4

1 回答 1

21

好吧,直接回答您的问题“如果颜色是 0x00ffffff,我将如何将其更改为 0xffffffff?” 简单地使用复合位或: color |= 0xff000000;

但我想可能有些同事宁愿你不要在 Android 开发的 java 端做这种事情:你有一个很棒的助手类,叫做graphics.Color Android 提供的!它在下面做同样的事情,但确实有助于您的代码可读性,特别是考虑到intandroid 中的类型颜色不一定是十六进制颜色值,但也可能指向colorxml 中资源的 artbirary id。啊。

例如:

int color = tv.getCurrentTextColor();
int newColor = Color.argb(yourNewAlphaVal, Color.red(color), Color.green(color), Color.blue(color))

不快,但我猜你不需要它。

当然,这是关于这里使用什么的个人意见,希望对您有所帮助!

于 2013-08-05T14:00:00.620 回答