1 . 在drawable 文件夹里新建圆角形状的文件: round_corner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
/>
<solid android:color="@color/white"/>
</shape>
2 . 创建对话框的布局文件: dialog.xml ,并为它设置上文创建的圆角形状
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="26dp"
android:layout_margin="28dp"
android:textColor="@color/black"
android:text="@string/dialog_content"
android:background="@drawable/round_corner"
/>
3 . 因为系统会默认给对话框黑色边框,需要自定义为透明样式
<style name="Theme_Transparent" parent="@android:Theme.DeviceDefault.Light.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
</style>
4 . 在代码里为按钮设置点击事件,初始化dialog 并显示
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.Theme_Transparent);
View view = LayoutInflater.from(context).inflate(R.layout.dialog, null);
builder.setView(view);
AlertDialog dialog = builder.create();
dialog.show();
dialog.setCancelable(true);
}
});