Bom dia
Estou com uma pequena duvida, queria saber um método que funciona em todas as API do Android para (Pelo menos da 16 ate a 22) para mudar a cor do botão.
Estou fazendo da seguinte maneira:
btn_ajuda.getBackground().setColorFilter(new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.MULTIPLY));
o que funciona para Androids 5.0 para cima, já em versões anteriores não é modificado nada.
Uma alternativa seria usar
btn_ajuda.setBackgroundColor(Color.BLUE);
Que funciona em todas as versões, porem esse método perde o “Design” do botão.
Queria saber se tem um jeito alternativo.
Obs.: Tem q ser via Java mesmo, uma vez que quero deixar o usuário a opção de personalizar as cores.
Olá Paulo,
Faça dessa forma:
btn_ajuda.setBackgroundColor(getResources().getColor(R.color.nome_da_cor));
Lembrando que você deve ter essa cor setada no seu colors.xml, por exemplo:
<color name="nome_da_cor">#0309fb</color>
Abraços.
Não tem como, como falei quero dar a oportunidade ao usuário de escolher o esquema de cores, seria complicado criar o colors.xml para isso.
Fala Paulo,
Mas o usuário vai poder escolher entre uma lista de cores existentes, certo? Ou qualquer cor que ele quiser?
Não faz muito sentido o usuário colocar qualquer cor.
Abraços.
A minha ideia original é de fato qualquer cor, as que melhor agrade o usuário =) kkk
A unica restrição q vou colocar é q a cor do textos tem q ser diferente da cor de fundo.
Fala Paulo,
O que não consegui entender, é quais cores, como vai funcionar?
De onde vão vir as cores que o usuário pode escolher? O usuário vai abrir uma paleta de cores?
Dependendo de como for o método de escolha de cores, você consegue identificar qual cor for escolhida.
Abraços.
A escolha das cores é usando uma Activity para esse finalidade
Nela tem 3 SeekBar (R,G,B) e uma view para visualizar as cores
Estou pensando em mudar em vez de um Activity usar uma caixa de dialogo só q eu tenho q dar uma estuda.
Usando esse método o usuário pode escolher qualquer cor.
Mas a questão não é bem a cor q ele vai escolher. Queria saber um método de mudar as cores dos botões que funciona em qualquer versão.
Cores padrões do Android
Cores que eu personalizei
Cor do botão = rgb(32,32,32)
Cor do plano de fundo = rgb(0,0,0)
Cor da letra = rgb(100,34,130)
Usei o metodo
PorterDuffColorFilter filtro = new PorterDuffColorFilter(SistemaDeCores.corPrimariaActivity, PorterDuff.Mode.MULTIPLY););
btn.getBackground().setColorFilter(filtro);
btn.setTextColor(SistemaDeCores.corTextoActivity);
Funciona bonito para Android 5.0
já no Android 4.4 as cores dos botões não mudaram só da letras
Simulando no Android 4.4
Então uma alternativa que pensei foi fazer o seguinte
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
PorterDuffColorFilter filtro = new PorterDuffColorFilter(SistemaDeCores.corPrimariaActivity, PorterDuff.Mode.MULTIPLY);
btn.getBackground().setColorFilter(filtro);
else{
btn.setBackgroundColor(SistemaDeCores.corPrimariaActivity);
}
btn.setTextColor(SistemaDeCores.corTextoActivity);
Só q o resultado foi isso:
O q perde todo o design do botão.