7
說我有這樣的代碼:Android的 - 只更改字母的TextView的文本
int color = tv.getCurrentTextColor();
我怎麼會在這個顏色只改變阿爾法?
例如:
如果顏色是0x00ffffff
,我將如何將其更改爲0xffffffff
?
有沒有一種方法,或者我需要做一些十六進制/ int操作?
說我有這樣的代碼:Android的 - 只更改字母的TextView的文本
int color = tv.getCurrentTextColor();
我怎麼會在這個顏色只改變阿爾法?
例如:
如果顏色是0x00ffffff
,我將如何將其更改爲0xffffffff
?
有沒有一種方法,或者我需要做一些十六進制/ int操作?
那麼,直接回答你的問題「如果顏色是0x00ffffff,我將如何將其更改爲0xffffffff?」只需使用複合按位或: color |= 0xff000000;
。
但我估計也許有些同事寧願你沒有在Android開發的java端做這樣的事情:你有一個很棒的幫助類叫做graphics.Color
provided by Android!它只是在下面做同樣的事情,但真的會幫助你的代碼可讀性,特別是考慮到Android中的int
類型的顏色不一定是十六進制顏色值,但也可以指向color
xml中的資源的artbirary id。哎呀。
的例如是:
int color = tv.getCurrentTextColor();
int newColor = Color.argb(yourNewAlphaVal, Color.red(color), Color.green(color), Color.blue(color))
並不快,但我猜你並不需要它的人。
當然,這是一個關於在這裏使用什麼的個人意見,我希望這有助於!
我已經看過'graphics.Color'。沒有方法設置Alpha。只有得到阿爾法。 – Igor
添加API級別1:http://developer.android.com/reference/android/graphics/Color.html#argb(int,int,int,int) – Tom
真的希望這有助於。你不能*設置*顏色值的原因是它是一個'int'。 'int's不能在java中設置 - 你必須創建一個新的。這就是幫助者只是靜態負載的原因。 – Tom