说我有这个代码:
int color = tv.getCurrentTextColor();
我将如何仅更改此颜色的 Alpha?
例如:
如果颜色是0x00ffffff
,我将如何将其更改为0xffffffff
?
有没有一种方法或者我需要做一些十六进制/整数操作?
好吧,直接回答您的问题“如果颜色是 0x00ffffff,我将如何将其更改为 0xffffffff?” 简单地使用复合位或:
color |= 0xff000000;
。
但我想可能有些同事宁愿你不要在 Android 开发的 java 端做这种事情:你有一个很棒的助手类,叫做graphics.Color
Android 提供的!它在下面做同样的事情,但确实有助于您的代码可读性,特别是考虑到int
android 中的类型颜色不一定是十六进制颜色值,但也可能指向color
xml 中资源的 artbirary id。啊。
例如:
int color = tv.getCurrentTextColor();
int newColor = Color.argb(yourNewAlphaVal, Color.red(color), Color.green(color), Color.blue(color))
不快,但我猜你不需要它。
当然,这是关于这里使用什么的个人意见,希望对您有所帮助!