在项目中 有时候需要Dialog透明背景该怎样才能满足需求呢,现在分享代码
1.样式:
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">false</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">false</item><!--模糊-->
</style>
2.自定义dialog
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
public class SelectDialog extends AlertDialog {
public SelectDialog(Context context, int theme) {
super(context, theme);
}
public SelectDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
}
}
3.activity_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="115dp"
android:layout_height="wrap_content"
android:background="@drawable/otherapp_bg"
android:orientation="vertical"
android:padding="10dp">
<Button
android:id="@+id/btnSltCntAll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="left|center_vertical"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="联系人"></Button>
<Button
android:id="@+id/btnSltGudongUser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="left|center_vertical"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:text="咕咚"></Button>
<Button
android:id="@+id/btnSltRecommend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="left|center_vertical"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="用户"></Button>
</LinearLayout>
4.引用dialog
SelectDialog selectDialog = new SelectDialog(this,R.style.dialog);//创建Dialog并设置样式主题
Window win = selectDialog.getWindow();
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.gravity= Gravity.CENTER;
win.setAttributes(params);
selectDialog.setCanceledOnTouchOutside(false);//设置点击Dialog外部任意区域关闭Dialog
selectDialog.show();