我正在创建一个派生自Dialog的类。对话框的标题栏看起来非常棒,是一种略微透明的深灰色。是否有一种方法可以设置用于标题栏背景的颜色?这个灰色很酷,但我想将其设置为自定义颜色。我认为这不可能,我认为我需要提供自己的可拉伸背景对话框资源。是这样吗?
谢谢
我正在创建一个派生自Dialog的类。对话框的标题栏看起来非常棒,是一种略微透明的深灰色。是否有一种方法可以设置用于标题栏背景的颜色?这个灰色很酷,但我想将其设置为自定义颜色。我认为这不可能,我认为我需要提供自己的可拉伸背景对话框资源。是这样吗?
谢谢
使用以下代码:
final Dialog mailDialog = new Dialog(MainActivity.this);
mailDialog.getWindow().setBackgroundDrawableResource(R.drawable.dialog_box);
在drawable文件夹中创建一个自定义对话框的xml,内容如下:
dialog_box.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
<gradient
android:angle="-90"
android:centerColor="#660D1E4A"
android:endColor="#66011444"
android:startColor="#66505E7F"
android:type="linear"
/>
<stroke
android:dashGap="0dp"
android:dashWidth="0dp"
android:width="1dp"
android:color="#ffffffff" />
</shape>
希望这对您有所帮助。
您可以使用:
this.getWindow().setBackgroundDrawableResource(R.color.blue);
这将设置整个窗口的颜色,包括标题栏。
然后,您可以更改对话框布局的背景颜色(除了标题栏),使其变为您喜欢的任何颜色,而标题栏将保持蓝色。
dialog = new Dialog(this); // your dialog
dialog.getWindow().setTitleColor(R.color.blue_background);
@Deprecated public abstract void setTitleColor(int textColor);
- A. Petrov最好的方法是使用自定义对话框,您可以在其中自定义其外观。
请查看设置AlertBox标题栏背景颜色和http://developer.android.com/guide/topics/ui/dialogs.html以了解如何操作。
dialog.getWindow().setTitleColor(getResources().getColor(R.color.blue));
setTitleColor()
已被弃用。 - Sam Chen标题部分的背景颜色可以通过以下方式轻松设置:
int titleLayoutId = dialog.getContext().getResources().
getIdentifier("topPanel", "id", "android");
LinearLayout layout = (LinearLayout) dialog.findViewById(titleLayoutId);
if (layout != null) {
layout.setBackgroundColor(yourColor);
}
这消除了创建自定义布局的需要。