7

このコードがあるとします:

int color = tv.getCurrentTextColor();

この色のアルファだけを変更するにはどうすればよいですか?

例えば:

色が の場合0x00ffffff、どうすれば に変更でき0xffffffffますか?

そのための方法はありますか、または hex/int 操作を行う必要がありますか?

4

1 に答える 1

21

「色が 0x00ffffff の場合、どうすれば 0xffffffff に変更できますか?」という質問に対する率直な答えです。単純に複合ビット単位 or: を使用します color |= 0xff000000;

しかし、一部の同僚は、Android 開発の Java 側でこのようなことをしたくないと思うかもしれません: graphics.Color Android によって提供される素晴らしいヘルパー クラスがあります。下で同じことを行いますが、コードの読みやすさに本当に役立ちます。特にint、android の型の色は必ずしも 16 進数の色の値ではなく、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 に答える