Android-自定义AlertDialog背景颜色

因此,我看到我们可以使用具有灰色和白色(当setinverse …时)背景色的Alertdialog。

要了解为什么我检查了sdk的themes.xml,检查了它是否导致了可绘制对象,并且在那里我意识到alertdialog背景不是以编程方式完成的,而是通过一些图像完成的。这些图像保证了当我们使用LayoutInflater设置不同的背景色时,对话框的顶部(标题区域)和底部(按钮区域上方)有两条灰色(反色时为白色)水平线。

所以我的问题是,由于LayoutInflator没用,并且猜测我必须继承alertdialog,您建议我如何生成具有不同背景色的AlertDialog?我应该覆盖什么?

回答:

我没有使用AlertDialog,而是使用了Dialog。获得自定义外观:

1-创建对话框并删除标题区域(否则您将在顶部看到空白的灰色区域):

myDialog = new Dialog(this);

myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

2-在xml中设计一个布局,并将其设置为对话框的内容:

myDialog.setContentView(R.layout.mydialog_layout);

3-如果布局不是圆角的rect,则它将与对话框的圆角相交。因此,将布局设计为圆角矩形:

在mydialog_layout.xml中:

android:background = "@layout/mydialog_shape"

mydialog_shape.xml:

<?xml version="1.0" encoding="UTF-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android"

android:shape="rectangle"

>

<gradient android:startColor="#FF0E2E57"

android:endColor="#FF0E2E57"

android:angle="225" android:paddingLeft="20dip"/>

<corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp"

android:topLeftRadius="5dp" android:topRightRadius="5dp" android:paddingLeft="20dip"/>

</shape>

4-将侦听器添加到活动中的按钮:

Button button = (Button)myDialog.findViewById(R.id.dialogcancelbutton);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

myDialog.cancel();

}});

就是这样

以上是 Android-自定义AlertDialog背景颜色 的全部内容, 来源链接: utcz.com/qa/431011.html

回到顶部