2013-07-13 11 views
11

Android ma 2 typy kolorów: R.color i color Układ wykorzystuje R.color (muszę holo_blue_light: 17170450 (0x01060012))Jak przekonwertować R.color na kolor?

ale funkcji (takich jak setcolor()) mają inny typ Int wejściowe (to CYAN: -16711681 (0xff00ffff)).

Negacja z R.color zwraca niepoprawne kolory. Co mam zrobić, aby je przekonwertować?

+1

zobaczyć w imporcie powinieneś zaimportować 'android.R;' usunąć ten, który będzie działał –

Odpowiedz

16

Od getResources().getColor jest teraz przestarzała, można użyć:

ContextCompat.getColor(getResources(), R.color.idOfColour)

stary odpowiedź

Korzystając

getResources().getColor(R.color.idOfColour); 

zwraca kolor int szukasz. Jeśli kolor jest wyposażony w Androida można uzyskać swój identyfikator z android.R.color.colourId

+0

Dziękuję, działa :) –

+0

przestarzałe, a cały api konwertowania z R.color na kolorowy kod #xxxxxx, jest uciążliwy do tego stopnia, że ​​wydaje się znacznie lepiej po prostu zakodować kod koloru. Dlaczego jest tak skomplikowany? – carl

+0

@carl dzięki za wskazanie. To nie jest skomplikowane. Powodem tego jest fakt, że kolor może być stylizowany z motywem Kontekst. – Blackbelt

2
  1. kolor z zasobów można uzyskać poprzez

    getResources() GetColor (R.color.color_id.);

  2. kolor, który uratował z widokiem (słownie kolor tła lub kolor tekstu), który będzie wyglądać swoim drugim przykładzie, można uzyskać poprzez

Color.parseColor (String kolor)

1

dlaczego nie spróbować pars w kolorze fowling sposób

int colorCode = Color.parseColor("#ffffff") ; 
setColor(colorCode) ; 
0

jeszcze jedno chciałbym dodać

int color_int = ContextCompat.getColor(context, R.color.your_color); 
Color colorName = new Color(color_int); 

można użyć colorName jak chcesz

Powiązane problemy