我想将Dim Background更改为蓝色或红色,我看过的每个例子都使用过一个XML文件,但有没有办法通过传入Color String来设置?
谢谢
答案 0 :(得分:2)
没有直接的解决方法,但这可能对您有所帮助
自定义对话框主题如下:
<强> styles.xml 强>
<style name="CustomDialogTheme" parent="android:Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
windowNoTitle用于摆脱标题栏。 window backgroud设置为透明windowIsFloating为false,将对话框视图扩展为全屏。
自定义Dialog.java
public CustomDialog(Context context) {
super(context, R.style.CustomDialogTheme);
setContentView(R.layout.custom_dialog);
}
<强> custom_dialog.xml 强>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dim_dialog_bg_color">
<RelativeLayout
android:id="@+id/dialog_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:background="@drawable/dialog_bg_color"
android:padding="16dp">
</RelativeLayout>
答案 1 :(得分:0)
更改对话框的样式并使用它
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<!-- Customize your theme here. -->
<item name="android:windowBackground">@color/red</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:clipToPadding">false</item>
<item name="android:windowFrame">@null</item>
<item name="android:textColorPrimary">@color/red</item>
</style>
答案 2 :(得分:0)
试试这个: 你可以将颜色代码传递给ColorDrawable。
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));