在 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>
注:
- 我正在使用
com.android.support:appcompat-v7:23.0.1
- 我的对话框是
android.support.v4.app.DialogFragment
我的主要 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
找到的
我必须制作一个像这张图片一样的透明对话框。我已经尝试过很多方法,比如设置背景 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>
注:
- 我正在使用
com.android.support:appcompat-v7:23.0.1
- 我的对话框是
android.support.v4.app.DialogFragment
我的主要 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
找到的