本文实例为大家分享了android自定义弹框dialog效果的具体代码,供大家参考,具体内容如下
1.dialog_delete.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <relativelayout android:layout_width="236dp" android:layout_height="184dp" android:layout_centerhorizontal="true" android:layout_centervertical="true" android:background="@drawable/dialog_white_back"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除设备" android:textcolor="#333333" android:textsize="15sp" android:layout_centerhorizontal="true" android:layout_margintop="13dp"></textview> <imageview android:id="@+id/delete_close_id" android:layout_width="10dp" android:layout_height="10dp" android:background="@mipmap/login_close_back" android:layout_alignparentright="true" android:layout_margintop="16dp" android:layout_marginright="13dp"></imageview> <textview android:id="@+id/delete_device_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设备 id:123456789" android:textcolor="#333333" android:textsize="16sp" android:layout_margintop="75dp" android:layout_centerhorizontal="true"></textview> <textview android:id="@+id/delete_cancle_id" android:layout_width="77dp" android:layout_height="26dp" android:background="@drawable/round_gray" android:layout_alignparentbottom="true" android:layout_marginbottom="18dp" android:layout_marginleft="31dp" android:text="取消" android:textsize="11sp" android:textcolor="#333333" android:gravity="center"></textview> <textview android:id="@+id/delete_sure_id" android:layout_width="77dp" android:layout_height="26dp" android:background="@drawable/round_blue" android:layout_alignparentbottom="true" android:layout_marginbottom="18dp" android:layout_alignparentright="true" android:layout_marginright="32dp" android:text="确定" android:textsize="11sp" android:textcolor="#fefdfd" android:gravity="center"></textview> </relativelayout> </relativelayout>
2.设置背景边框,在drawable创建dialog_white_back.xml
颜色以及圆角 根据自己需求修改
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color ="#ffffff"/> <corners android:radius="8dp"/> </shape>
3.按钮的背景边框,在drawable创建round_gray.xml
颜色以及圆角 根据自己需求修改
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color = "#dcdcdc" /> <corners android:radius="360dp"/> </shape>
4.在style文件中添加
<!--dialog 样式 --> <style name="bottomdialog" parent="alertdialog.appcompat"> <item name="android:windowisfloating">true</item> <item name="android:windowframe">@null</item> <item name="android:windownotitle">true</item> <item name="android:windowbackground">@android:color/transparent</item> <item name="android:backgrounddimenabled">true</item> <item name="android:windowcontentoverlay">@null</item> <item name="android:fullbright">@color/clear</item> <item name="android:fulldark">@color/clear</item> <item name="android:topbright">@color/clear</item> <item name="android:topdark">@color/clear</item> <item name="android:borderlessbuttonstyle">@color/clear</item> </style>
5.java代码部分
/** * 删除alertdialog */ public void deletedialog() { //布局、id view view = layoutinflater.from(getactivity()).inflate(r.layout.dialog_delete, null); imageview delete_close_id = view.findviewbyid(r.id.delete_close_id); textview delete_device_id = view.findviewbyid(r.id.delete_device_id); textview delete_cancle_id = view.findviewbyid(r.id.delete_cancle_id); textview delete_sure_id = view.findviewbyid(r.id.delete_sure_id); //显示样式 final dialog dialog = new dialog(getactivity(), r.style.bottomdialog); dialog.setcontentview(view); dialog.getwindow().setbackgrounddrawableresource(android.r.color.transparent); displaymetrics dm = getresources().getdisplaymetrics(); int displaywidth = dm.widthpixels; int displayheight = dm.heightpixels; android.view.windowmanager.layoutparams p = dialog.getwindow().getattributes(); //获取对话框当前的参数值 p.width = (int) (displaywidth * 0.8); //宽度设置为屏幕的0.5 //dialog.setcanceledontouchoutside(false);// 设置点击屏幕dialog不消失 dialog.getwindow().setattributes(p); //设置生效 dialog.show(); //点击关闭 delete_close_id.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { dialog.dismiss(); } }); //点击确定删除 delete_sure_id.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { dialog.dismiss(); } }); //点击取消删除 delete_cancle_id.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { dialog.dismiss(); } }); }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。