2015-04-10 13 views
10

Jestem stoi dziwny problem, gdzie mam ustawienia tła w TextView do @android:color/holo_blue_bright, spodziewając się, że jest jasny niebieski zielony, tylko do stwierdzenia, że ​​jest to jakiś jasny na zielonej urządzenie.Niebieski Holo kolory wyświetlane na urządzeniu

XML

<TextView 
    android:id="@+id/tv_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    android:background="@drawable/chat_bubble" 
    android:maxWidth="300dp" 
    android:padding="5dp" 
    android:singleLine="false" 
    android:textSize="16sp" /> 

@ rozciągliwej/chat_bubble

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="@color/chat_bubble_background" /> 

    <corners android:radius="5dp" /> 
</shape> 

colors.xml (tylko odpowiednia linia)

<color name="chat_bubble_background">@android:color/holo_blue_bright</color> 

Powyższe ustawienia zapewniają to. Każda wiadomość jest TextView

enter image description here

Myślałem, że może to dlatego, że moje urządzenie wyświetla kolory inaczej albo coś, więc próbowałem trochę bardziej holo kolory, ale wszystkie wyglądają dokładnie tak, jak powinny

@ android: kolor/holo_green_light daje

enter image description here

@android: kolor/holo_gre en_dark daje

enter image description here

Nawet @android: Kolor/holo_orange_light i @android: Kolor/holo_purple wyglądają OK

enter image description here

enter image description here

wyjątkiem niebieski te:

@android: Kolor/holo_blue_light daje

enter image description here

@android: Kolor/holo_blue_dark daje

enter image description here

Wszystko niebieski pojawiają się podobne, ale nie dokładnie takie same odcienie zieleni. Nie ma tego samego odcienia zieleni co holo_green_light lub.

Myślałem, co to jest? Wszystko wygląda dobrze, ale nie niebieskie? i poszedł sprawdzić, co jest HEX z holo_blue_bright i znalazłem go here (to #FF00DDFF).
Próbowałem więc użyć tych wartości HEX bezpośrednio, zamiast używać predefiniowanego koloru holo.

enter image description here

studio Android (v1.2) mówi mi, że to dokładnie ten sam kolor, jak się spodziewałem.

Kiedy jednak potem zmienił

<solid android:color="@color/chat_bubble_background" /> 

do

<solid android:color="@color/chat_bubble_background2" /> 

używać #FF00DDFF jak kolor, mam ten

enter image description here

Który jest dokładnie to, czego oczekuje się zobacz, kiedy używałem holo_blue_bright! Co powinno mieć sens, biorąc pod uwagę, że są tego samego koloru.

Jestem zakłopotany. Co tu się dzieje, czego mi brakuje? Dlaczego 2 rzekomo jednakowe kody kolorów dają różne wyniki i dlaczego wszystkie pozostałe kolory hologramów wyglądają normalnie?


Informacje o urządzeniu:

OnePlus Jeden
model A0001
Running cyjanu OS V11.0-XNPH05Q/kernel 3.4.0-CyanogenMod-gc73a4ec zbudować 04
Running Android 4.4.4

+0

Wow, a widzisz te same wyniki na wielu urządzeniach i wersjach systemu operacyjnego? – CSmith

+0

Niestety mam tylko jedno urządzenie do testowania, to jest Android 4.4.4 –

+0

Byłoby interesujące zrobić getResources(). GetColor (android.R.color.holo_blue_bright); w kodzie i wydrukuj wartość heksadecymalną, – CSmith

Odpowiedz

6

Kod szesnastkowy dla holo_blue_bright w standardowym Androidzie 4.4.4 to ff00ddff (Source).

Otrzymany zielony kolor to w rzeczywistości wartość user_icon_6, określana jako "jasnozielona 500" (Source).

Wygląda na to, że producent urządzenia dostosował paletę kolorów, zastępując wartości domyślne innymi kolorami (celowe lub nie). Oznacza to, że holo_blue_bright jest zdefiniowany tak w dostosowanej wersji Androida:

<color name="holo_blue_bright">#ff8bc34a</color> 


Teraz, pod warunkiem informacji o urządzeniu, spojrzałem w górę the source of CM11. Zdefiniowany kolor to ff00ddff, , który jest poprawny. Jednak OnePlus opracowuje własną wersję systemu Cyanogen OS, więc mogły one zmienić wartości kolorów. Niestety, nie mogłem znaleźć kodu źródłowego CM11-XNPH05Q, więc mogę tylko zgadywać.

Proponuję zapytać bezpośrednio OnePlus o ten problem.

+0

Interesujące. OnePlus wprowadza na rynek Cyanogen 12 od dzisiaj, może to po prostu naprawić, prawda? –

+0

@TimCastelijns Chciałbym poczekać na aktualizację i ponownie sprawdzić problem. Może naprawili błąd (jeśli nie jest to zamierzone), w przeciwnym razie możesz skontaktować się z nim w sprawie problemu. – Manu

+1

Miałeś rację. Jest to niestandardowe nadpisanie w bujnym motywie cyanogenu. Wciąż to widziałem po aktualizacji do cyjanogenu 12, ale kiedy próbowałem nowych motywów, zauważyłem, że kolor jest jasno niebieski dla każdego motywu, ale nie dla Lusha –

1

Od komentarzu powyżej

@CSmith Daje mi ff8bc34a, który wygląda jak rodzaj zielony widzę. Dlaczego Android Studio mówi mi, że to jest ff00ddff?

Jest całkiem jasne, że producent zmienił kolor na urządzeniu. Android Studio daje wartość koloru z oficjalnych zasobów Androida w SDK.

Wypróbuj aplikację w emulatorze z np. Nexus 5. Założę się, że kolor będzie tam poprawny.

Powiązane problemy