步骤:
(1)创建Dialog 布局(layout-XML)
(2)创建自定义布局背景(drawable--drawable resource file) 备注:只是背景的设置
(3)创建自定义布局风格(valus--styles--myStyles) 备注:这是Dialog整体属性的设置
(4)创建帮助类并继承
(5)最后一步:创建调用Dialog方法
Demo:
(1)创建Dialog 布局(layout-XML)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/bg_dialog" //调用背景
android:minWidth="250dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical"
>
<TextView
android:id="@+id/tvTitle"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="微信"
android:textSize="16sp"
android:gravity="center_horizontal"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#000000"
android:layout_marginTop="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确认要卸载此应用吗?"
android:textSize="16sp"
android:layout_marginTop="10dp"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="25dp"
>
<TextView
android:id="@+id/f_quchecbutton_btn_quxiao"
android:layout_width="0dp"
android:layout_height="25dp"
android:text="取消"
android:textSize="16sp"
android:layout_weight="2"
android:gravity="center"
android:background="#CCCCCC"
/>
<TextView
android:layout_width="0dp"
android:layout_height="25dp"
android:visibility="invisible"
android:text="占位"
android:textSize="16sp"
android:layout_weight="1"
android:gravity="center"
android:background="#CCCCCC"
/>
<TextView
android:id="@+id/f_quchecbutton_btn_queding"
android:layout_width="0dp"
android:layout_height="25dp"
android:text="确定"
android:textSize="16sp"
android:layout_weight="2"
android:gravity="center"
android:background="#CCCCCC"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
(2)创建自定义布局背景(drawable--drawable resource file)
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 顶部带圆角 白色背景 灰色边框 无下边框 长方体 -->
<item>
<shape>
<solid android:color="#ffffff" />//背景颜色
<corners android:topLeftRadius="5dp" android:topRightRadius="5dp"
android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" />//圆角 值越大,圆角越大
<stroke android:width="0dp" android:color="#ffa8abad" />//边框 宽度及颜色
</shape>
</item>
</layer-list>
(3)创建自定义布局风格(valus--styles--myStyles)
<resources>
<!-- 这里是APP原生的 -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- 这里是Dialog专用的-->
</style>
<style name="DialogTheme" parent="@android:style/Theme.Dialog">
<!-- 边框 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 无标题 -->
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<!-- 背景透明 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 模糊 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 遮罩层 -->
<item name="android:backgroundDimAmount">0.5</item>
</style>
</resources>
(4)创建帮助类并继承
public class MyDialog extends Dialog {
public MyDialog(Context context, int width, int height, View layout, int style) {
super(context, style);
setContentView(layout);
Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.gravity = Gravity.CENTER;
window.setAttributes(params);
}
}
(5)最后一步:创建调用Dialog方法
private void showLoginDialog() {
View view = getLayoutInflater().inflate(R.layout.dialog, null);
final TextView tvTitle = view.findViewById(R.id.tvTitle);
tvTitle.setText("微信");
final TextView btnYes = view.findViewById(R.id.f_quchecbutton_btn_queding);
final TextView btlNo = view.findViewById(R.id.f_quchecbutton_btn_quxiao);
final MyDialog builder = new MyDialog(MainActivity.this,0,0,view,R.style.DialogTheme);
builder.setCancelable(false);
builder.show();
//设置对话框显示的View
//点击确定是的监听
btnYes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, "确定按钮。。。", Toast.LENGTH_SHORT).show();
builder.cancel();
}
});
btlNo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "取消按钮。。。", Toast.LENGTH_SHORT).show();
builder.cancel();
}
});
}