Android编程实现对话框Dialog背景透明功能示例
程序员文章站
2022-05-02 21:06:59
本文实例讲述了android编程实现对话框dialog背景透明功能。分享给大家供大家参考,具体如下:
先看效果:
这是我做的一个拨号器强的面板,拨号的时...
本文实例讲述了android编程实现对话框dialog背景透明功能。分享给大家供大家参考,具体如下:
先看效果:
这是我做的一个拨号器强的面板,拨号的时候会查询手机中的联系人,显示在拨号面板上方,点击弹出透明对话框供选择。
这次重点是透明对话框。
先看对话框的theme,style文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="selectordialog" parent="@android:style/theme.dialog"> <item name="android:windowframe">@null</item><!--边框--> <item name="android:windowisfloating">true</item><!--是否浮现在activity之上--> <item name="android:windowistranslucent">false</item><!--半透明--> <item name="android:windownotitle">true</item><!--无标题--> <item name="android:windowbackground">@drawable/selector_dialog_bg</item><!--背景透明--> <item name="android:backgrounddimenabled">false</item><!--模糊--> <item name="android:backgrounddimamount">0.6</item> </style> </resources>
对话框背景@drawable/selector_dialog_bg:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#333333"/> <stroke android:width="2dp" android:color="#99cc33" /> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" /> <corners android:radius="8dp" /> </shape>
然后是对话框的布局:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <listview android:id="@+id/selector_dialog_listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cachecolorhint="#00000000" android:scrollbars="none" android:dividerheight="1.0dip" android:divider="#c4c4c4" /> </linearlayout>
程序中:
final view view = layoutinflater.from(this).inflate(r.layout.selector_dialog, null); selectordialog = new dialog(dialeractivity.this, r.style.selectordialog); selectordialog.setcontentview(view); final baseadapter adapter = new selectoradapter(dialeractivity.this, selectorlist); listview listview = (listview) view.findviewbyid(r.id.selector_dialog_listview); listview.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { //对话框中事件处理 } }); listview.setadapter(adapter); selectordialog.show(); selectordialog.setcanceledontouchoutside(true); windowmanager windowmanager = getwindowmanager(); display display = windowmanager.getdefaultdisplay(); windowmanager.layoutparams lp = selectordialog.getwindow().getattributes(); lp.width = (int)(display.getwidth() * 0.9); if(selectorlist.size() > 7) { lp.height = (int)(display.getheight() * 0.9); } lp.alpha = 0.8f; selectordialog.getwindow().setattributes(lp);
其实主要是通过windowmanager.layoutparams
给对话框设置属性。
更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
上一篇: 新浪微博如何关闭别人通过手机号搜到我?搜索功能关闭
下一篇: 建行公众微信号数字查询码怎么设置?
推荐阅读
-
Android编程实现多列显示的下拉列表框Spinner功能示例
-
Android编程实现google消息通知功能示例
-
Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】
-
Android编程实现对话框Dialog背景透明功能示例
-
Android编程实现的首页左右滑动切换功能示例
-
Android编程实现通讯录中联系人的读取,查询,添加功能示例
-
Android编程实现AlertDialog自定义弹出对话框的方法示例
-
Android编程实现activity dialog透明背景的方法
-
Android编程实现多列显示的下拉列表框Spinner功能示例
-
Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】