Android自定义样式圆角dialog对话框
程序员文章站
2022-03-02 21:01:49
本文实例为大家分享了android创建自定义样式圆角dialog对话框的具体代码,供大家参考,具体内容如下效果如上,圆角对话框,标题和正文都可以自己设定做法:1.在res文件的layout文件夹创建自...
本文实例为大家分享了android创建自定义样式圆角dialog对话框的具体代码,供大家参考,具体内容如下
效果如上,圆角对话框,标题和正文都可以自己设定
做法:
1.在res文件的layout文件夹创建自己的对话框布局,命名为my_dialog.xml
2.在res文件的drawable文件夹创建自己的对话框样式(圆角),命名为my_dialog_shape.xml
3.写一个方法调用对话框布局,触发条件自定义,这里我是写了一个按钮,在按钮的点击事件里调用方法,弹出对话框。在这个方法里可以定义对话框的标题、正文、点击确定或取消时触发的事件等,还可以设定对话框在屏幕上的显示位置
4.在需要弹出对话框的地方调用方法
上代码:
1.在res文件的layout文件夹创建自己的对话框布局,命名为my_dialog.xml
对话框内部控件的显示位置都可以在这里自己调整
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginhorizontal="16dp"> <textview android:layout_width="match_parent" android:layout_height="wrap_content" android:textsize="18sp" android:textcolor="@color/black" android:textstyle="bold" android:layout_margintop="14dp" android:gravity="center" android:layout_gravity="center" android:id="@+id/title"/> <textview android:layout_width="match_parent" android:layout_height="wrap_content" android:textsize="16sp" android:textcolor="@color/black" android:layout_margintop="16dp" android:layout_marginhorizontal="16dp" android:gravity="center" android:layout_gravity="center" android:id="@+id/message"/> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginhorizontal="20dp" android:layout_margintop="16dp"> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="取消" android:textsize="16sp" android:textcolor="@color/white" android:background="@null" android:layout_marginright="14dp" android:id="@+id/btn_cancel"/> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="确定" android:textsize="16sp" android:textcolor="@color/white" android:id="@+id/btn_confirm"/> </linearlayout> </linearlayout>
2.在res文件的drawable文件夹创建自己的对话框样式(圆角),命名为my_dialog_shape.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/white" /> <corners android:radius="20dp"/> </shape>
3.写一个方法调用对话框布局,触发条件自定义,这里我是写了一个按钮,在按钮的点击事件里调用方法,弹出对话框。在这个方法里可以定义对话框的标题、正文、点击确定或取消时触发的事件等,还可以设定对话框在屏幕上的显示位置
public void my_dialog(context context) { view inflatelayout = layoutinflater.from(context).inflate(r.layout.my_dialog,null); textview unbind_title = (textview) inflatelayout.findviewbyid(r.id.title); unbind_title.settext("标题"); textview unbind_message = (textview) inflatelayout.findviewbyid(r.id.message); unbind_message.settext("正文"); alertdialog builderdialog = new alertdialog.builder(context) .setview(inflatelayout) .setcancelable(false) //使用户只能通过点击对话框的确定或取消关闭对话框 .create(); inflatelayout.findviewbyid(r.id.btn_confirm).setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { toast.maketext(context, "你点击了确定", toast.length_short).show(); builderdialog.dismiss(); } }); inflatelayout.findviewbyid(r.id.btn_cancel).setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { toast.maketext(context, "你点击了取消", toast.length_short).show(); builderdialog.dismiss(); } }); builderdialog.getwindow().setbackgrounddrawableresource(r.drawable.my_dialog_shape); //设置对话框的样式 windowmanager.layoutparams params = builderdialog.getwindow().getattributes(); params.y = 1000; builderdialog.getwindow().setattributes(params); builderdialog.show(); builderdialog.getwindow().setgravity(gravity.top); //设置对话框展示在距离屏幕顶部1000的位置 }
4.在需要弹出对话框的地方调用方法
例如:我在mainactivity里点击了一下button,触发了弹出对话框的方法
button pops_up = (button) findviewbyid(r.id.pops_up); pops_up.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { my_dialog(mainactivity.this); } });
代码完整,欢迎指正
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。