悬浮对话框Android代码实现
程序员文章站
2024-03-07 08:44:50
直接上代码:
private void setdialog(){
view view = getlayoutinflater().i...
直接上代码:
private void setdialog(){ view view = getlayoutinflater().inflate(r.layout.dialog_country, null); mdialog = new dialog(this); mdialog.setcontentview(view, new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); window window = mdialog.getwindow(); windowmanager.layoutparams wl = window.getattributes(); wl.x = 0; wl.y = getwindowmanager().getdefaultdisplay().getheight(); wl.width = viewgroup.layoutparams.match_parent; wl.height = viewgroup.layoutparams.wrap_content; mdialog.onwindowattributeschanged(wl); mdialog.setcanceledontouchoutside(true); mdialog.show(); button btnchina = (button) view.findviewbyid(r.id.btnchina); button btnusa = (button) view.findviewbyid(r.id.btnusa); button btnuk = (button) view.findviewbyid(r.id.btnuk); button btncancel = (button) view.findviewbyid(r.id.btncancel); btnchina.setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { // todo auto-generated method stub mquery.id(r.id.btncountry).gettextview().settext("china"); mdialog.dismiss(); } }); btnusa.setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { // todo auto-generated method stub mquery.id(r.id.btncountry).gettextview().settext("usa"); mdialog.dismiss(); } }); btnuk.setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { // todo auto-generated method stub mquery.id(r.id.btncountry).gettextview().settext("uk"); mdialog.dismiss(); } }); btncancel.setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { // todo auto-generated method stub mdialog.dismiss(); } }); }
首先inflate一个xml文件,产生一个view;再创建一个dialog,设置dialog的view为inflate的view;然后通过windowmanager.layoutparams设置dialog的长度、宽度、显示的位置等等,最后setcanceledontouchoutside(true),点击其他地方可以退出dialog。运行效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Java的绘图模式使用浅析
下一篇: Android如何自定义按钮效果