设置AlertBox标题栏背景颜色

Jee*_*eva 9 android background android-alertdialog

如何更改警报框标题栏的背景颜色?

AlertDialog.Builder alert=new AlertDialog.Builder(getParent());
alert.setTitle("sample");
alert.show();
Run Code Online (Sandbox Code Playgroud)

Cor*_*sDK 10

最简单的方法是通过创建一个扩展对话框的类来实现对话的子类,并实现以样式作为参数的构造函数.然后为它制作自己的自定义布局.

显示对话框的代码:

private void showDialog()
{
    Custom_Dialog dialog = new Custom_Dialog(this, R.style.myCoolDialog);

    dialog.setContentView(R.layout.custom_dialog);
    dialog.setTitle("Custom Dialog");

    TextView text = (TextView) dialog.findViewById(R.id.text);
    text.setText("Hello, this is a custom dialog!");
    ImageView image = (ImageView) dialog.findViewById(R.id.image);
    image.setImageResource(R.drawable.icon);

    dialog.show();  
}
Run Code Online (Sandbox Code Playgroud)

子类的代码:

package com.stackoverflow;

import android.app.Dialog;
import android.content.Context;

public class Custom_Dialog extends Dialog {

    protected Custom_Dialog(Context context, int theme) {
        super(context, theme);
        // TODO Auto-generated constructor stub
    }

}
Run Code Online (Sandbox Code Playgroud)

风格:myCoolDialog.xml

<resources>
    <style name="myCoolDialog" parent="android:Theme.Dialog"> 
        <item name="android:windowBackground">@drawable/blue</item>
        <item name="android:colorForeground">#f0f0</item> 
     </style> 
</resources>
Run Code Online (Sandbox Code Playgroud)

并最后布局:custom_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="10dp"
              >
    <ImageView android:id="@+id/image"
               android:layout_width="wrap_content"
               android:layout_height="fill_parent"
               android:layout_marginRight="10dp"
               />
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#FFF"
              />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)