Quero mudar a cor do círculo do RadioButton em um dos meus projetos , não consegui entender qual propriedade definir. A cor de fundo que estou usando é preta, então fica invisível. Quero definir a cor do círculo para branco.
android
android-radiobutton
Amandeep Singh
fonte
fonte
Respostas:
Mais simples, basta definir o botão Cor da tinta: (só funciona no nível 21 da API ou acima)
em seus values / colors.xml, coloque sua cor nesse caso avermelhada:
Resultado:
Se você quiser fazer isso por código (também api 21 e acima):
fonte
control.getDrawable().setColorFilter(getResources().getColor(color), PorterDuff.Mode.SRC_IN);
, ondecontrol
é o controle que você deseja alterar a tonalidade ecolor
é um valor inteiro da cor que você quer, por exemploR.color.red
android.R.attr.state_checked
e adicionar a cor.Atualização: 1. use este aqui
2. Em seguida, adicione esta linha no layout pai ou
Alt + Enter
no Android Studio para adicionar automaticamentexmlns:app="http://schemas.android.com/apk/res-auto"
O Exemplo Mínimo deve ficar assim:
3. No seu programa, você deve chamar assim.
AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);
Basicamente, esse tipo de padrão pode ser aplicado a todos os tipos de AppCompact, como AppCompatCheckBox, AppCompatButton e assim por diante.
Resposta antiga:
Para oferecer suporte abaixo da API do Android 21, você pode usar AppCompatRadioButton. Em seguida, use o
setSupportButtonTintList
método para alterar a cor. Este é o meu trecho de código para criar um botão de opção.Resultado testado na API 19:
Veja o link de referência do Android para mais detalhes.
fonte
<android.support.v7.widget.AppCompatRadioButton ../>
setSupportButtonTintList
é um método privado que você não pretende usar. Os botões de opção se comportam de maneira estranha em determinadas versões do Android. Em vez disso, useCompoundButtonCompat.setButtonTintList(rb, colorStateList)
.fonte
Trabalhando na API pré-21 e pós-21. Em seu artigo
styles.xml
:Seu
radio button
em xml deve se parecer com:Agora tudo que você precisa fazer é fazer um
radiobutton_drawable.xml
na suadrawable folder
. Aqui está o que você precisa colocar nele:O seu
radio_unchecked.xml
:O seu
radio_checked.xml
:Apenas substitua
@color/colorAccent
pela cor de sua escolha.fonte
Você precisa usar este código:
Usando em
app:buttonTint
vez deandroid:buttonTint
e também emandroid.support.v7.widget.AppCompatRadioButton
vez deRadiobutton
!fonte
Declare o estilo customizado em seu arquivo styles.xml.
Aplique esse estilo ao seu RadioButton via atributo android: theme.
somente se sua atividade se estender
AppCompatActivity
fonte
<item name="android:colorControlActivated">@color/pink</item>
para que funcionasse para mim. Ainda não sei por que. Caso contrário, esta é uma boa resposta.Para sob API 21
Crie um estilo personalizado RadioButton style.xml
No layout, use o tema:
Para API 21 e mais
Basta usar buttonTint
fonte
A pergunta é antiga, mas acho que minha resposta ajudará as pessoas. Você pode alterar a cor do estado desmarcado e marcado do botão de opção usando o estilo em xml.
Em style.xml
Você pode definir as cores desejadas neste estilo.
fonte
Defina a
buttonTint
propriedade Por exemploandroid:buttonTint="#99FF33"
,.fonte
Eu fiz isso da maneira mais curta assim (trabalhando na API pré-21 e pós-21)
Seu botão de opção em xml deve ficar assim
em radiodraw.xml
precisa adicionar cores transparentes para desenhar o status desmarcado; caso contrário, ele desenha um oval preto sólido.
fonte
Às vezes, você só precisa substituir o colorControlNormal assim:
E você receberá um botão como este:
colorControlNormal usado para o estado não verificado e colorAccent para marcado.
fonte
Existe um atributo xml para ele:
fonte
"Make sure your min API is higher then 21 or this won't work"
isso é falso. Eu sou alvo API 17 com AndroidX e esta é a única coisa que funcionou para mimPara aqueles que desejam alterar os estados de desativado, marcado e ativado, você executa as seguintes etapas:
em seguida, na pasta res de cores, crie um arquivo chamado "radio_button_color.xml":
fonte
O botão Todos muda de cor, a caixa circular e a verificação central.
fonte
RadioButton, por padrão, assume a cor do colorAccent no arquivo res / values / colors.xml. Então vá para esse arquivo e altere o valor de
<color name="colorAccent">#3F51B5</color>
para a cor que você deseja.
fonte
A maneira mais fácil é mudar a
colourAccent
cor,values->colours.xml
mas esteja ciente de que isso também mudará outras coisas, como editar a cor do cursor do texto etc.
< color name="colorAccent">#75aeff</color >
fonte
Se você deseja definir cores diferentes para o botão de opção clicado e não clicado, use:
fonte
basta usar o
android:buttonTint="@color/colorPrimary"
atributo na tag, espero que ajudefonte
Eu tive esse problema. Se o seu aplicativo tiver um plano de fundo preto e você tiver muitos botões de opção invisíveis devido ao plano de fundo, é complicado editar o android: buttonTint de cada um, a melhor solução é alterar o tema principal em seu arquivo styles.xml
eu mudei
para
Assim, os círculos dos RadioButtons se tornaram um tom mais claro de cinza e agora são visíveis mesmo com um fundo preto.
Este é o meu arquivo style.xml:
fonte
@ jh314 está correto. No AndroidManifest.xml,
Em style.xml
o nome do item deve ser colorAccent, decide a cor padrão dos widgets do aplicativo.
Mas se você quiser alterar a cor no código, talvez a resposta de @ aknay esteja correta.
fonte