2013-08-05 8 views
7

のみアルファを変更するには、私はこのコードを持って言いますか?アンドロイドのTextViewのテキスト

色が0x00ffffffある場合には、どのように私はそれが0xffffffffに変更します。例えば

これにはメソッドがありますか、または16進/ int操作を行う必要がありますか?

答えて

20

あなたの質問への答えはです。「色が0x00ffffffなら、どうすれば0xffffffffに変更できますか?」をビット単位で単に使用するか、または color |= 0xff000000;とするだけです。

しかし私は、Android開発のJava側でこのようなことをやっていない同僚かもしれないと思います。graphics.Colorprovided by Androidという素晴らしいヘルパークラスがあります。それはちょうど同じことを下にしますが、実際にはあなたのコードの読みやすさを助けます。特に、intのタイプの色は必ずしも16進数の色の値ではありませんが、 xmlのリソースのartbirary idを指すこともできます。アー。

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

は速くありませんが、私はあなたがそれをする必要はありません推測している:

などは次のようになります。

もちろん、これはここで何を使用するかについての個人的な意見ですが、これが役立つことを願っています!

+0

私は既に 'graphics.Color'を見ました。アルファを設定する方法はありません。アルファのみを取得する。 – Igor

+1

追加APIレベル1:http://developer.android.com/reference/android/graphics/Color.html#argb(int、int、int、int) – Tom

+0

これが本当に役立つことを願っています。カラー値を設定できないのは、それが 'int 'だからです。 'int'sはjavaで設定することはできません - あなたは新しいものを作成しなければなりません。だからヘルパーは静的なものにすぎません。 – Tom

関連する問題