Saya ingin mengubah warna lingkaran RadioButton di salah satu proyek saya , saya tidak bisa mengerti properti mana yang harus diatur. Warna latar belakang yang saya miliki adalah hitam sehingga tidak terlihat. Saya ingin mengatur warna lingkaran menjadi putih.
android
android-radiobutton
Amandeep Singh
sumber
sumber
Jawaban:
Lebih sederhana, cukup atur warna buttonTint: (hanya berfungsi pada api level 21 atau lebih tinggi)
di nilai Anda / colors.xml masukkan warna Anda dalam kasus ini yang kemerahan:
Hasil:
Jika Anda ingin melakukannya dengan kode (juga api 21 ke atas):
sumber
control.getDrawable().setColorFilter(getResources().getColor(color), PorterDuff.Mode.SRC_IN);
manacontrol
kontrol Anda ingin mengubah warna dancolor
merupakan nilai integer dari warna yang Anda inginkan misalnyaR.color.red
android.R.attr.state_checked
dan menambahkan warna.Pembaruan: 1. gunakan yang ini sebagai gantinya
2. Kemudian tambahkan baris ini ke tata letak induk atau
Alt + Enter
di Android Studio untuk ditambahkan secara otomatisxmlns:app="http://schemas.android.com/apk/res-auto"
Contoh minimum akan terlihat seperti ini:
3. Dalam program Anda, harus memanggil seperti ini.
AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);
Pada dasarnya, pola seperti ini dapat diterapkan untuk semua jenis AppCompact seperti AppCompatCheckBox, AppCompatButton dan sebagainya.
Jawaban lama:
Untuk mendukung Android 21 API di bawah ini, Anda dapat menggunakan AppCompatRadioButton. Kemudian gunakan
setSupportButtonTintList
metode untuk mengubah warna. Ini adalah cuplikan kode saya untuk membuat tombol radio.Hasil yang diuji di API 19:
Lihat tautan referensi android untuk detail lebih lanjut.
sumber
<android.support.v7.widget.AppCompatRadioButton ../>
setSupportButtonTintList
adalah metode pribadi yang tidak dimaksudkan untuk Anda gunakan. Tombol radio akan berperilaku aneh pada versi Android tertentu. Sebaliknya, gunakanCompoundButtonCompat.setButtonTintList(rb, colorStateList)
.sumber
Bekerja pada API pra 21 serta pos 21. Di tempat Anda
styles.xml
:Anda
radio button
di xml akan terlihat seperti:Sekarang yang perlu Anda lakukan adalah membuat
radiobutton_drawable.xml
didrawable folder
. Inilah yang perlu Anda masukkan ke dalamnya:Anda
radio_unchecked.xml
:Anda
radio_checked.xml
:Ganti saja
@color/colorAccent
dengan warna pilihan Anda.sumber
Anda harus menggunakan kode ini:
Menggunakan
app:buttonTint
bukannyaandroid:buttonTint
dan jugaandroid.support.v7.widget.AppCompatRadioButton
bukannyaRadiobutton
!sumber
Nyatakan gaya khusus di file styles.xml Anda.
Terapkan gaya ini ke RadioButton Anda melalui atribut android: theme.
hanya jika aktivitas Anda meluas
AppCompatActivity
sumber
<item name="android:colorControlActivated">@color/pink</item>
agar bisa bekerja untuk saya. Saya masih tidak yakin mengapa. Kalau tidak, ini jawaban yang bagus.Untuk di bawah API 21
Buat gaya kustom RadioButton style.xml
Dalam tata letak menggunakan tema:
Untuk API 21 dan lebih banyak lagi
Cukup gunakan tombolTint
sumber
Pertanyaannya sudah lama tetapi saya pikir jawaban saya akan membantu orang. Anda dapat mengubah warna tombol radio yang tidak dicentang dan diperiksa dengan menggunakan gaya dalam xml.
Di style.xml
Anda dapat mengatur warna yang diinginkan dalam gaya ini.
sumber
Atur
buttonTint
properti. Sebagai contohandroid:buttonTint="#99FF33"
,.sumber
Saya membuatnya dengan cara singkat seperti ini (Bekerja pada API pra 21 serta pos 21)
Tombol radio Anda di xml akan terlihat seperti ini
di radiodraw.xml
harus menambahkan warna transparan untuk menggambar status yang tidak dicentang, selain itu menggambar oval hitam pekat.
sumber
Terkadang Anda hanya perlu mengganti colorControlNormal seperti ini:
Dan Anda akan mendapatkan tombol seperti ini:
colorControlNormal digunakan untuk keadaan tidak dicentang dan colorAccent untuk diperiksa.
sumber
Ada atribut xml untuknya:
sumber
"Make sure your min API is higher then 21 or this won't work"
itu salah. Saya menargetkan API 17 dengan AndroidX dan ini adalah satu-satunya yang bekerja untuk sayaBagi mereka yang ingin mengubah keadaan dinonaktifkan, dicentang dan diaktifkan, Anda melakukan langkah-langkah berikut:
lalu di folder res warna buat file bernama "radio_button_color.xml":
sumber
Semua tombol akan berubah warna, kotak lingkaran dan centang pusat.
sumber
RadioButton secara default mengambil warna colorAccent dalam file res / values / colors.xml. Jadi buka file itu dan ubah nilainya
<color name="colorAccent">#3F51B5</color>
dengan warna yang Anda inginkan.
sumber
Cara termudah adalah dengan mengubah
colourAccent
warnavalues->colours.xml
tetapi perlu diketahui bahwa itu juga akan mengubah hal-hal lain seperti mengedit warna kursor teks dll.
< color name="colorAccent">#75aeff</color >
sumber
Jika Anda ingin mengatur warna berbeda untuk tombol radio yang diklik dan tidak diklik, gunakan saja:
sumber
cukup gunakan
android:buttonTint="@color/colorPrimary"
atribut pada tag, semoga membantusumber
Saya punya masalah ini. Jika aplikasi Anda memiliki latar belakang hitam dan Anda memiliki banyak RadioButtons yang tidak terlihat karena latar belakangnya, sulit untuk mengedit android: buttonTint masing-masing, solusi terbaik adalah mengubah tema induk di file styles.xml Anda
aku berubah
untuk
Jadi lingkaran RadioButtons menjadi warna abu-abu yang lebih terang dan sekarang mereka terlihat bahkan dengan latar belakang hitam.
Ini adalah file style.xml saya:
sumber
@ jh314 benar. Di AndroidManifest.xml,
Di style.xml
nama item harus colorAccent, itu menentukan warna default widget aplikasi.
Tetapi jika Anda ingin mengubah warna dalam kode, mungkin jawaban @ aknay benar.
sumber