在 android 中制作透明对话框

Make a transparent Dialog in android

我必须制作一个像这张图片一样的透明对话框。我已经尝试过很多方法,比如设置背景 android:background="#CCFF0000" 或从 .java 文件中设置背景颜色

llWhole.setBackgroundColor(Color.TRANSPARENT);。这里 llWhole 是我的 xml.

的父 LinearLayout

我也在 xml 文件中尝试了 android:background="@android:color/transparent"。我也试过 View.setAlpha(0.7)

不幸的是 none 他们帮助我创建了这个布局。你能帮我解决这个问题吗?提前致谢。

我的.xml在这里

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/llWhole"
    android:alpha = "0.7"
    android:layout_gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:alpha = "0.7"
        android:layout_gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Are You OK?"
            android:textColor="#000"
            android:paddingTop="10dp"
            android:paddingRight="10dp"
            android:paddingLeft="10dp"
            android:gravity="center"
            android:textSize="18sp"
            android:background="#FFF"/>

        <View
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:alpha = "0.7"
            android:background="#00FFFFFF" >
        </View>

        <LinearLayout
            android:paddingTop="10dp"
            android:paddingRight="10dp"
            android:paddingLeft="10dp"
            android:paddingBottom="20dp"
            android:background="#00FFFFFF"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvOK"
                android:layout_width="55dp"
                android:layout_height="wrap_content"
                android:text="OK"
                android:textColor="#000"
                android:gravity="center"
                android:textSize="18sp"
                android:background="#F11"/>

            <TextView
                android:id="@+id/tvNo"
                android:layout_width="55dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:text="NO"
                android:textColor="#000"
                android:gravity="center"
                android:textSize="18sp"
                android:background="#F11"/>

        </LinearLayout>
        </LinearLayout>


</LinearLayout>

注:

  1. 我正在使用 com.android.support:appcompat-v7:23.0.1
  2. 我的对话框是 android.support.v4.app.DialogFragment
  3. 我的主要 Activity 扩展 android.support.v7.app.AppCompatActivity;。从这个 Activity 我正在展示这个 DialogFragment。

    MyDialogFragment dialogFragment = new MyDialogFragment(); dialogFragment.show(getSupportFragmentManager(), "my_transparent_dialog");

请尝试myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

通知: 但考虑使用默认背景并符合 material 设计 ui 模式。

在你的dialogFragment onCreate中,尝试使用setStyle(,)来设置一个样式 @android:color/transparent 真

最后,我在 onCreateView 回调中使用这行代码解决了这个问题。

getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0));

我从 here

找到的