Chcę zmienić kolor koła RadioButton w jednym z moich projektów , nie mogłem zrozumieć, którą właściwość ustawić. Kolor tła, który mam, jest czarny, więc staje się niewidoczny. Chcę ustawić kolor koła na biały.
android
android-radiobutton
Amandeep Singh
źródło
źródło
Odpowiedzi:
Prostsze, wystarczy ustawić kolor przycisku Odcień: (działa tylko na poziomie API 21 lub wyższym)
w pliku values / colors.xml umieść swój kolor w tym przypadku jako czerwonawy:
Wynik:
Jeśli chcesz to zrobić za pomocą kodu (także API 21 i nowsze):
źródło
control.getDrawable().setColorFilter(getResources().getColor(color), PorterDuff.Mode.SRC_IN);
gdziecontrol
jest kontrolka, którą chcesz zmienić odcień icolor
jest wartością całkowitą wybranego koloru, np.R.color.red
android.R.attr.state_checked
i dodać kolor.Aktualizacja: 1. zamiast tego użyj tego
2. Następnie dodaj tę linię do układu nadrzędnego lub
Alt + Enter
w Android Studio, aby dodać automatyczniexmlns:app="http://schemas.android.com/apk/res-auto"
Minimalny przykład powinien wyglądać następująco:
3. W swoim programie powinien wywołać tak.
AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);
Zasadniczo ten rodzaj wzorca można zastosować do wszystkich typów AppCompact, takich jak AppCompatCheckBox, AppCompatButton i tak dalej.
Stara odpowiedź:
Aby obsługiwać poniżej Android API 21, możesz użyć AppCompatRadioButton. Następnie użyj
setSupportButtonTintList
metody, aby zmienić kolor. To jest mój fragment kodu służący do tworzenia przycisku opcji.Wynik testowany w API 19:
Więcej szczegółów można znaleźć w odnośniku do systemu Android .
źródło
<android.support.v7.widget.AppCompatRadioButton ../>
setSupportButtonTintList
to prywatna metoda, której nie zamierzasz używać. Przyciski opcji będą działać dziwnie w niektórych wersjach Androida. Zamiast tego użyjCompoundButtonCompat.setButtonTintList(rb, colorStateList)
.źródło
Praca nad API pre 21, jak i post 21. W twoim
styles.xml
miejscu:Twój
radio button
w xml powinien wyglądać następująco:Teraz wszystko, co musisz zrobić, to
radiobutton_drawable.xml
w twojejdrawable folder
. Oto, co musisz w nim umieścić:Twój
radio_unchecked.xml
:Twój
radio_checked.xml
:Po prostu zastąp
@color/colorAccent
go wybranym kolorem.źródło
Musisz użyć tego kodu:
Używanie
app:buttonTint
zamiast,android:buttonTint
a takżeandroid.support.v7.widget.AppCompatRadioButton
zamiastRadiobutton
!źródło
Zadeklaruj własny styl w pliku styles.xml.
Zastosuj ten styl do swojego RadioButton za pośrednictwem atrybutu android: theme.
tylko wtedy, gdy twoja działalność się rozszerza
AppCompatActivity
źródło
<item name="android:colorControlActivated">@color/pink</item>
, żeby to zadziałało dla mnie. Nadal nie wiem dlaczego. W przeciwnym razie jest to dobra odpowiedź.Zgodnie z API 21
Utwórz niestandardowy styl RadioButton style.xml
W motywie użycia układu:
Dla API 21 i więcej
Wystarczy użyć buttonTint
źródło
Pytanie jest stare, ale myślę, że moja odpowiedź pomoże ludziom. Możesz zmienić kolor niezaznaczonego i zaznaczonego stanu przycisku opcji, używając style w xml.
W style.xml
W tym stylu możesz ustawić żądane kolory.
źródło
Ustaw
buttonTint
właściwość. Na przykładandroid:buttonTint="#99FF33"
.źródło
Zrobiłem to krótko w ten sposób (praca nad API przed 21, a także po 21)
Twój przycisk opcji w xml powinien wyglądać tak
w radiodraw.xml
trzeba dodać kolor przezroczysty do rysowania stanu niezaznaczonego; w przeciwnym razie rysuje jednolity czarny owal.
źródło
Czasami wystarczy zastąpić colorControlNormal w ten sposób:
Otrzymasz taki przycisk:
colorControlNormal używany dla stanu niezaznaczonego i colorAccent dla zaznaczonego.
źródło
Istnieje dla niego atrybut xml:
źródło
"Make sure your min API is higher then 21 or this won't work"
to jest fałszywe. Celuję w API 17 z AndroidX i to jest jedyna rzecz, która zadziałałaDla tych, którzy chcą zmienić wyłączone, zaznaczone i włączone stany, na których jesteś kotem, wykonaj następujące czynności:
następnie w folderze color res utwórz plik o nazwie „radio_button_color.xml”:
źródło
Przycisk Wszystko zmieni kolor, okrąg i środkowy przycisk.
źródło
RadioButton domyślnie przyjmuje kolor colorAccent w pliku res / values / colors.xml. Więc przejdź do tego pliku i zmień wartość
<color name="colorAccent">#3F51B5</color>
na żądany kolor.
źródło
Najłatwiej jest zmienić
colourAccent
kolor,values->colours.xml
ale pamiętaj, że zmieni to również inne rzeczy, takie jak edycja koloru kursora tekstu itp.
< color name="colorAccent">#75aeff</color >
źródło
Jeśli chcesz ustawić inny kolor dla klikniętego i niezaznaczonego przycisku opcji, użyj:
źródło
po prostu użyj
android:buttonTint="@color/colorPrimary"
atrybutu na tagu, mam nadzieję, że to pomożeźródło
Miałem ten problem. Jeśli Twoja aplikacja ma czarne tło i masz wiele przycisków RadioButtons, które są niewidoczne z powodu tła, edytowanie android: buttonTint każdego z nich jest skomplikowane, najlepszym rozwiązaniem jest zmiana motywu nadrzędnego w pliku styles.xml
Zmieniłam
do
Tak więc okręgi RadioButtons stały się jaśniejszym odcieniem szarości i teraz są widoczne nawet na czarnym tle.
To jest mój plik style.xml:
źródło
@ jh314 jest poprawne. W AndroidManifest.xml,
W style.xml
nazwa elementu musi mieć wartość colorAccent, decyduje o domyślnym kolorze widżetów aplikacji.
Ale jeśli chcesz zmienić kolor w kodzie, może odpowiedź @ aknay jest poprawna.
źródło