Bene, la risposta diretta alla tua domanda di "se il colore è 0x00ffffff, come dovrei cambiarlo in 0xffffffff?" per utilizzare semplicemente il bit composto o: color |= 0xff000000;
.
Ma forse penso che alcuni colleghi preferirebbero non aver fatto questo tipo di cose sullo sviluppo di Android: avete una meravigliosa classe di supporto chiamata graphics.Color
provided by Android! Fa proprio le stesse cose al di sotto, ma aiuterà davvero la leggibilità del codice, specialmente considerando che un colore di tipo int
in Android non è necessariamente un valore di colore esadecimale ma potrebbe anche puntare a un ID artbirario di una risorsa nel file color
xml. Argh.
Un esempio potrebbe essere:
int color = tv.getCurrentTextColor();
int newColor = Color.argb(yourNewAlphaVal, Color.red(color), Color.green(color), Color.blue(color))
non veloce, ma credo che non è necessario che sia.
Naturalmente, questa è un'opinione personale su cosa usare qui, e spero che questo aiuti!
Ho già cercato in 'graphics.Color'. Non esiste alcun metodo per impostare Alpha. Solo per ottenere Alpha. – Igor
Livello API aggiunto 1: http://developer.android.com/reference/android/graphics/Color.html#argb(int, int, int, int) – Tom
Speriamo davvero che questo aiuti. Il motivo per cui non puoi * impostare * un valore di colore è che è un 'int'. 'int's non può essere impostato in java- devi crearne uno nuovo. Ecco perché l'aiutante è solo un carico di statici. – Tom