说我有这段代码:
int color = tv.getCurrentTextColor();
我如何仅更改此颜色的Alpha?
例如:
如果颜色为0x00ffffff
,我该如何将其更改为0xffffffff
?
是否有方法或我需要进行一些hex / int操作?
答案 0 :(得分:20)
嗯,对你的问题的直接回答“如果颜色是0x00ffffff,我怎么把它改成0xffffffff?”简单地按位使用复合或者:
color |= 0xff000000;
。
但我想也许有些同事宁愿你在Android开发的java方面没有做过这样的事情:你有一个很棒的帮助类叫graphics.Color
provided by Android!它在下面做了同样的事情,但是真的会帮助你的代码可读性,特别是考虑到android中的int
类型颜色不一定是十六进制颜色值,但也可以指向一个资源的artbirary id color
xml。int color = tv.getCurrentTextColor();
int newColor = Color.argb(yourNewAlphaVal, Color.red(color), Color.green(color), Color.blue(color))
哎呀。
例如:
{{1}}
不快,但我猜你不需要它。
当然,这是关于在这里使用什么的个人意见,我希望这有帮助!