Neste artigo trago uma forma bem simples para personalizar o seu AlertDialog do Android com botões de confirmação. Há a possibilidade de escolher as cores para até 8 itens, que são eles: título da caixa, a pergunta a ser feita, a cor do botão de negação, a cor do texto do botão de negação, a cor da barra que separa o título da pergunta a ser feita, a cor de fundo (abaixo da Dialog), a cor do botão de aceitação e a cor do texto do botão de aceitação.
Para ficar mais fácil o entendimento, relacionei letras de A a H comentadas no código, à imagem da sequência (Imagem 01).
public void executar(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Título");
builder.setMessage(Html.fromHtml("<font color='#0000FF'>Tem certeza?</font>")); //blue (B)
builder.setCancelable(false);
builder.setNegativeButton("Não", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//code
}
});
builder.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//code
}
});
AlertDialog dialog = builder.create();
dialog.show();
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#7FFF00"))); //green lemon (F)
try {
Resources resources = dialog.getContext().getResources();
int alertTitleId = resources.getIdentifier("alertTitle", "id", "android");
TextView alertTitle = (TextView) dialog.getWindow().getDecorView().findViewById(alertTitleId);
alertTitle.setTextColor(Color.parseColor("#008000")); //green (A)
int titleDividerId = resources.getIdentifier("titleDivider", "id", "android");
View titleDivider = dialog.getWindow().getDecorView().findViewById(titleDividerId);
titleDivider.setBackgroundColor(Color.parseColor("#FFFF00")); //yellow (E)
} catch (Exception ex) {
ex.printStackTrace();
}
Button neg = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
neg.setBackgroundColor(Color.parseColor("#FF0000")); //red (C)
neg.setTextColor(Color.parseColor("#FFFFFF")); //white (D)
Button pos = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
pos.setBackgroundColor(Color.parseColor("#000000")); //black (G)
pos.setTextColor(Color.parseColor("#FFA500")); //orange (H)
}
Observem que no arquivo de configuração “AndroidManifest.xml” (Imagem 02) foi adotado o tema Holo (android:theme=”@android:style/Theme.Holo”). Este tema foi o que trouxe a cor de fundo da Dialog, propriamente dita. Com outros temas, pode apresentar outros comportamentos e claro, outras cores. A cor de fundo da Dialog, vai ser determinada pelo tema escolhido.
Como puderam notar o dialog do exemplo não ficou algo profissional mas a partir daqui podem sim, ter uma boa noção e executarem suas próprias modificações. Espero que o artigo tenha contribuído para a comunidade de alguma forma.
Custos com hospedagem, SSL e registro de domínio
Se o artigo ajudou de alguma forma e gostaria de contribuir com o projeto Fedablio, faça uma doação de qualquer valor.
Chave PIX: 21d97524-aa38-4438-b857-062a61e28327
