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