转于:http://blog.csdn.net/luck_apple/article/details/6874491

-------------------------------------------------------------------------------

先看效果:

这是我做的一个拨号器强的面板,拨号的时候会查询手机中的联系人,显示在拨号面板上方,点击弹出透明对话框供选择。

这次重点是透明对话框。

先看对话框的theme,style文件:

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. <style
  4. name="selectorDialog"
  5. parent="@android:style/Theme.Dialog">
  6. <itemname="android:windowFrame">@null</item><!--边框-->
  7. <itemname="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
  8. <itemname="android:windowIsTranslucent">false</item><!--半透明-->
  9. <itemname="android:windowNoTitle">true</item><!--无标题-->
  10. <itemname="android:windowBackground">@drawable/selector_dialog_bg</item><!--背景透明-->
  11. <itemname="android:backgroundDimEnabled">false</item><!--模糊-->
  12. <itemname="android:backgroundDimAmount">0.6</item>
  13. </style>
  14. </resources>

对话框背景@drawable/selector_dialog_bg:

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android"
  3. android:shape="rectangle">
  4. <solidandroid:color="#333333"/>
  5. <stroke
  6. android:width="2dp"
  7. android:color="#99CC33"/>
  8. <padding
  9. android:left="5dp"
  10. android:top="5dp"
  11. android:right="5dp"
  12. android:bottom="5dp"/>
  13. <cornersandroid:radius="8dp"/>
  14. </shape>

然后是对话框的布局:

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. android:orientation="vertical">
  7. <ListView
  8. android:id="@+id/selector_dialog_listview"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. android:cacheColorHint="#00000000"
  12. android:scrollbars="none"
  13. android:dividerHeight="1.0dip"
  14. android:divider="#C4C4C4"/>
  15. </LinearLayout>


程序中:

[java] view plain copy
  1. finalViewview=LayoutInflater.from(this).inflate(R.layout.selector_dialog,null);
  2. selectorDialog=newDialog(DialerActivity.this,R.style.selectorDialog);
  3. selectorDialog.setContentView(view);
  4. finalBaseAdapteradapter=newSelectorAdapter(DialerActivity.this,selectorList);
  5. ListViewlistView=(ListView)view.findViewById(R.id.selector_dialog_listview);
  6. listView.setOnItemClickListener(newOnItemClickListener(){
  7. @Override
  8. publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
  9. //对话框中事件处理
  10. }
  11. });
  12. listView.setAdapter(adapter);
  13. selectorDialog.show();
  14. selectorDialog.setCanceledOnTouchOutside(true);
  15. WindowManagerwindowManager=getWindowManager();
  16. Displaydisplay=windowManager.getDefaultDisplay();
  17. WindowManager.LayoutParamslp=selectorDialog.getWindow().getAttributes();
  18. lp.width=(int)(display.getWidth()*0.9);
  19. if(selectorList.size()>7){
  20. lp.height=(int)(display.getHeight()*0.9);
  21. }
  22. lp.alpha=0.8f;
  23. selectorDialog.getWindow().setAttributes(lp);



其实主要是通过WindowManager.LayoutParams给对话框设置属性。

更多相关文章

  1. android 底部弹出提示框的实现方式
  2. Android(安卓)P系统修改状态栏记录
  3. Android(安卓)CheckBox设置背景selector和文本text 设置selectCo
  4. 科普篇
  5. android PhoneGap JQuery Mobile Demo
  6. Widget动态换背景图片 android
  7. android中一种欢迎界面模式
  8. 背景图片显示问题 图片显示错误 android开发
  9. Android中的popWindow

随机推荐

  1. 安卓按钮有按下去的效果的实现方法
  2. Android中Media Framework浅析(二)——Medi
  3. Android之如何解决右上角不显示3个点的菜
  4. Android开发之EditText属性详解
  5. 【Android开发】完善搜索功能-添加最近查
  6. 【转】Android(安卓)OTA 升级之一:编译升
  7. 《你知道android的MessageQueue.IdleHand
  8. 我的Android进阶之旅------>经典的大牛博
  9. [Android]MPAndroidChart的实战使用讲解
  10. 安卓android模拟器使用命令行