このコードがあるとします:
int color = tv.getCurrentTextColor();
この色のアルファだけを変更するにはどうすればよいですか?
例えば:
色が の場合0x00ffffff
、どうすれば に変更でき0xffffffff
ますか?
そのための方法はありますか、または hex/int 操作を行う必要がありますか?
「色が 0x00ffffff の場合、どうすれば 0xffffffff に変更できますか?」という質問に対する率直な答えです。単純に複合ビット単位 or: を使用します
color |= 0xff000000;
。
しかし、一部の同僚は、Android 開発の Java 側でこのようなことをしたくないと思うかもしれません: graphics.Color
Android によって提供される素晴らしいヘルパー クラスがあります。下で同じことを行いますが、コードの読みやすさに本当に役立ちます。特にint
、android の型の色は必ずしも 16 進数の色の値ではなく、color
xml 内のリソースの artbirary id を指すこともできることを考えると. ああ。
たとえば、次のようになります。
int color = tv.getCurrentTextColor();
int newColor = Color.argb(yourNewAlphaVal, Color.red(color), Color.green(color), Color.blue(color))
速くはありませんが、そうである必要はないと思います。
もちろん、これはここで何を使用するかについての個人的な意見であり、これが役立つことを願っています!