我正在创建一个派生自Dialog的类。对话框的标题栏看起来非常好,它是深灰色,有点透明。有没有办法设置用于标题栏背景的颜色?灰色很酷,但我想将它设置为一些自定义颜色。我不认为这是可能的,我想我需要提供自己的可伸缩背景对话框资源。是吗?
由于
答案 0 :(得分:14)
使用以下代码:
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>
希望这会对你有所帮助。
答案 1 :(得分:2)
您可以使用:
this.getWindow().setBackgroundDrawableResource(R.color.blue);
这将设置整个窗口颜色,包括标题栏。
然后,您可以更改对话框布局的背景颜色,除了标题栏之外的所有内容都可以更改为喜欢的内容,标题栏将保持蓝色。
答案 2 :(得分:1)
最好的方法是使用自定义对话框,然后您可以自定义其外观。
请查看Set AlertBox Title Bar Background Color以及http://developer.android.com/guide/topics/ui/dialogs.html如何解决此问题。
答案 3 :(得分:1)
dialog = new Dialog(this); // your dialog
dialog.getWindow().setTitleColor(R.color.blue_background);
答案 4 :(得分:0)
标题部分的背景颜色可以通过以下方式轻松设置:
int titleLayoutId = dialog.getContext().getResources().
getIdentifier("topPanel", "id", "android");
LinearLayout layout = (LinearLayout) dialog.findViewById(titleLayoutId);
if (layout != null) {
layout.setBackgroundColor(yourColor);
}
这消除了创建自定义布局的需要。
答案 5 :(得分:0)
dialog.getWindow().setTitleColor(getResources().getColor(R.color.blue));