Jak zmienić domyślny CheckBox
kolor w Androidzie?
Domyślnie CheckBox
kolor jest zielony i chcę zmienić ten kolor.
Jeśli nie jest to możliwe, proszę powiedz mi, jak zrobić niestandardowy CheckBox
?
247
Jak zmienić domyślny CheckBox
kolor w Androidzie?
Domyślnie CheckBox
kolor jest zielony i chcę zmienić ten kolor.
Jeśli nie jest to możliwe, proszę powiedz mi, jak zrobić niestandardowy CheckBox
?
android:buttonTint="@color/mybrown"
jest łatwym sposobem na zmianę koloru pudełka.app:buttonTint="@color/mybrown"
zamiast tego, w ten sposób może działać na API <21Odpowiedzi:
Jeśli masz
minSdkVersion
ukończone 21 lat, użyjandroid:buttonTint
atrybutu, aby zaktualizować kolor pola wyboru:W projektach korzystających z biblioteki AppCompat i obsługujących wersje Androida poniżej 21 możesz użyć zgodnej wersji
buttonTint
atrybutu:W takim przypadku, jeśli chcesz podklasę
CheckBox
, nie zapomnij użyćAppCompatCheckBox
zamiast tego.POPRZEDNIA ODPOWIEDŹ:
Możesz zmienić
CheckBox
s rysowalny za pomocąandroid:button="@drawable/your_check_drawable"
atrybutu.źródło
contentControl
teraz opcje: materialdoc.com/components/selection-controlsMożesz zmienić kolor bezpośrednio w XML. Użyj
buttonTint
dla pudełka: (od poziomu API 23)Możesz to również zrobić za pomocą
appCompatCheckbox v7
starszych poziomów API:źródło
możesz ustawić motyw android pola wyboru, aby uzyskać żądany kolor w swoich stylach. xml dodaj:
następnie w pliku układu:
w przeciwieństwie do korzystania z
android:buttonTint="@color/CHECK_COLOR"
tej metody działa pod Api 23źródło
Wersja programowa:
źródło
Służy
buttonTint
do zmiany koloru przycisku i selektora kolorów dla wersji powyżej 21+ interfejsu API.res / colors / checkbox_filter_tint.xml
źródło
values
zasób. Jak wskazano powyżej, ścieżka musi znajdować się wcolors
folderze zasobów.Sugerowałbym użycie podejścia opartego na stylu w Androidzie jako sposobu konfiguracji wbudowanych widoków Androida, dodania nowego stylu do swojego projektu:
i dodaj przypisanie tego stylu do motywu pola wyboru: android: theme = "@ style / youStyle"
mam nadzieję że to pomoże.
źródło
źródło
Dodaj tę linię do swojego
styles.xml
pliku:źródło
buttonTint zadziałał dla mnie spróbuj
android: buttonTint = "@ kolor / biały"
źródło
Napotkałem ten sam problem, mam rozwiązanie wykorzystujące technikę poniżej. Skopiować
btn_check.xml
odandroid-sdk/platforms/android-#(version)/data/res/drawable
do folderu rozciągliwej Twojego projektu i zmień „on” i „off” stanów obraz do niestandardowych obrazów.Wtedy twój xml będzie po prostu potrzebował
android:button="@drawable/btn_check"
Jeśli chcesz użyć różnych domyślnych ikon Androida, możesz użyć:
źródło
Możesz zmienić
checkbox
kolor za pomocą pojedynczej linii koduandroid:buttonTint="@color/app_color" //whatever color
źródło
100% niezawodne podejście.
W moim przypadku nie miałem dostępu do pliku źródłowego układu XML, ponieważ dostaję Checkbox z trzeciej strony lib MaterialDialog. Więc muszę rozwiązać to programowo.
res / color / checkbox_tinit_dark_theme.xml:
Następnie zastosuj go do pola wyboru:
PS Dodatkowo, jeśli ktoś jest zainteresowany, oto jak możesz uzyskać pole wyboru z okna dialogowego MaterialDialog (jeśli ustawiłeś to
.checkBoxPromptRes(...)
):Mam nadzieję że to pomoże.
źródło
utwórz xml
Drawable resource file
podres->drawable
i nazwij go, na przykład,checkbox_custom_01.xml
Prześlij niestandardowe pliki obrazów pól wyboru (polecam png) do swojego
res->drawable
folderu.Następnie przejdź do pliku układu i zmień pole wyboru na
możesz dostosować wszystko, o ile
android:button
wskazuje na poprawny plik XML, który wcześniej utworzyłeś.UWAGA DLA WIADOMOŚCI: chociaż nie jest to obowiązkowe, dobrą praktyką jest nazywanie swojego pola wyboru unikalnym identyfikatorem w całym drzewie układu.
źródło
Cześć To jest kod motywu dla Dark Theme i Light Theme.
Jeśli chcesz zmienić kolor pola wyboru, atrybut „colorAccent” użyje dla stanu zaznaczonego, a „android: textColorSecondary” użyje dla stanu odznaczenia.
„actionOverflowButtonStyle” użyje do zmiany koloru ikony przepełnienia na pasku akcji.
Atrybut „buttonsearch_picture” będzie używał do zmiany koloru odcienia przycisku akcji na pasku akcji. Jest to niestandardowy atrybut w style.xml
To samo dotyczy przycisku odświeżania, którego używam w mojej aplikacji.
Atrybut „android: popupMenuStyle” służy do uzyskania stylu menu kontekstowego jasnego motywu w ciemnym motywie.
I to jest kod paska narzędzi, którego używam w mojej aplikacji Rocks Player.
Tematy: -
źródło
możesz utworzyć swój własny plik XML w trybie do rysowania i używać go jako systemu Android: background = "@ drawable / your_xml"
w ten sposób możesz dać wszystkim narożnik
źródło
Możesz użyć następujących dwóch właściwości w pliku „colors.xml”
colorControlNormal służy do normalnego widoku pola wyboru, a colorControlActivated ma miejsce, gdy pole wyboru jest zaznaczone.
źródło
Możesz zmienić kolor tła,
<CheckBox>
umieszczając go wewnątrz<LinearLayout>
. Następnie zmień kolor tła na żądany<LinearLayout>
kolor.źródło
Powinieneś spróbować poniżej kodu. To działa dla mnie.
i CheckBox
źródło
Jeśli zamierzasz korzystać z ikon Androida, jak opisano powyżej ..
.. to fajna opcja, ale aby to zadziałało - odkryłem, że musisz dodać logikę przełączania, aby pokazać / ukryć znacznik wyboru, jak poniżej:
źródło
Większość odpowiedzi przechodzi przez plik xml. Jeśli znajdziesz aktywną odpowiedź dla większości wersji Androida i masz tylko jeden kolor dla dwóch statusów Zaznacz pole wyboru Odznacz: oto moje rozwiązanie:
Kotlin:
Jawa:
źródło
Jest o wiele łatwiejszy sposób programowego ustawienia kolorów. Użyj poniższej metody Checkbox.setButtonTintList (ColorStateList.valueOf (getContext (). GetColor (R.color.yourcolor)))
źródło
Możesz użyć poniższych wierszy kodu, aby dynamicznie zmieniać tło pola wyboru w kodzie Java.
Ta odpowiedź pochodzi z tej strony . Możesz także skorzystać z tej strony, aby przekonwertować kolor RGB na wartość heksadecymalną, musisz podać parseColor
źródło