`

Android 自定义对话框

 
阅读更多

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

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

先看效果:

 

         

 

 

 

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

 

这次重点是透明对话框。

 

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

 

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

 

 

对话框背景@drawable/selector_dialog_bg:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:shape="rectangle">  
  4.     <solid android: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.     <corners android:radius="8dp" />  
  14. </shape>  

 

 

 

然后是对话框的布局:

 

  1. <?xml version="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.       
  8.     <ListView  
  9.         android:id="@+id/selector_dialog_listview"  
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="wrap_content"  
  12.         android:cacheColorHint="#00000000"  
  13.         android:scrollbars="none"  
  14.         android:dividerHeight="1.0dip"  
  15.         android:divider="#C4C4C4" />  
  16.               
  17. </LinearLayout>  


程序中:

 

  1. final View view = LayoutInflater.from(this).inflate(R.layout.selector_dialog, null);  
  2.         selectorDialog = new Dialog(DialerActivity.this, R.style.selectorDialog);  
  3.         selectorDialog.setContentView(view);  
  4.           
  5.         final BaseAdapter adapter = new SelectorAdapter(DialerActivity.this, selectorList);  
  6.         ListView listView = (ListView) view.findViewById(R.id.selector_dialog_listview);  
  7.         listView.setOnItemClickListener(new OnItemClickListener() {  
  8.   
  9.             @Override  
  10.             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {  
  11.                 //对话框中事件处理  
  12.             }  
  13.               
  14.         });  
  15.         listView.setAdapter(adapter);  
  16.         selectorDialog.show();  
  17.         selectorDialog.setCanceledOnTouchOutside(true);  
  18.           
  19.         WindowManager windowManager = getWindowManager();  
  20.         Display display = windowManager.getDefaultDisplay();  
  21.         WindowManager.LayoutParams lp = selectorDialog.getWindow().getAttributes();  
  22.         lp.width = (int)(display.getWidth() * 0.9);  
  23.         if(selectorList.size() > 7) {  
  24.             lp.height = (int)(display.getHeight() * 0.9);  
  25.         }  
  26.         lp.alpha = 0.8f;  
  27.         selectorDialog.getWindow().setAttributes(lp);  



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

 

分享到:
评论

相关推荐

    android自定义对话框、dialog

    总的来说,创建Android自定义对话框需要理解DialogFragment或AlertDialog.Builder的工作原理,以及如何将它们与自定义布局相结合。通过`defineDialog`这样的示例,开发者可以学习到如何从头开始构建一个具有特定功能...

    安卓Android源码——android 自定义对话框.rar

    本资源“安卓Android源码——android 自定义对话框.rar”显然包含了关于如何在Android平台上创建和定制对话框的源代码示例。通过这个压缩包,我们可以学习到如何摆脱系统默认样式,设计出更符合应用风格的对话框。 ...

    android 自定义对话框

    以上就是关于Android自定义对话框的一些关键知识点。通过熟练掌握这些技巧,开发者可以创建出更加美观、易用的对话框,提升用户体验。在实际项目中,可以根据需求灵活运用,打造出满足各种场景的自定义对话框。

    Android自定义对话框实现QQ退出界面

    在Android开发中,自定义对话框...通过以上步骤,我们成功地实现了Android自定义对话框,模拟了QQ退出界面的效果。在实际应用中,可以根据项目需求对这个对话框进行进一步的定制和优化,以提供更加个性化的用户体验。

    Android自定义对话框Dialog(界面美化)

    总之,Android自定义对话框Dialog的界面美化是一个涉及布局设计、样式定制、事件处理等多个方面的过程。通过深入理解并实践这些技术,开发者可以创造出更具吸引力和个性化的Dialog,从而提高用户对应用的满意度。

    Android应用源码之android 自定义对话框.zip

    在Android开发中,自定义对话框(Custom Dialog)是一个重要的组件,它允许开发者根据应用程序的UI风格和功能需求创建独特且交互性强的弹出界面。本压缩包中的资源提供了关于如何在Android应用中实现自定义对话框的...

    Android自定义对话框

    一般自定义对话框有三种办法: 1、重写Dialog来实现。 2、获取Dialog的Window对象实现。 3、使用WindowManager来实现。 4、使用DialogTheme来实现。 详细请看:...

    Android例子源码自定义对话框

    在Android开发中,自定义对话框(Dialog)是常见的需求,它可以为用户提供更丰富的交互体验。自定义对话框可以按照应用程序的设计风格进行定制,包括布局、颜色、按钮样式等,从而提升应用的用户体验。本篇将围绕...

    android 自定义对话框.zip源码资源下载

    下面将详细介绍Android自定义对话框的相关知识点。 首先,Android中的对话框通常是通过`Dialog`类或其子类如`AlertDialog`来创建的。`Dialog`继承自`Activity`,而`AlertDialog`则是`Dialog`的一个更具体的实现,常...

    Android自定义对话框(代码)

    在Android开发中,自定义对话框(Custom Dialog)是一种常用的技术,它允许开发者根据应用的UI风格和功能需求创建个性化的对话框。本教程将详细讲解如何在Android中实现自定义对话框,并提供代码示例。 一、Android...

    android自定义对话框加动画

    在Android开发中,自定义对话框...综上所述,Android自定义对话框结合动画的应用不仅能够丰富用户体验,还能增强应用的美观度。通过合理的布局设计和动画设置,开发者可以创造出功能强大且具有吸引力的对话框组件。

    安卓Android源码——android 自定义对话框.zip

    本资源"安卓Android源码——android 自定义对话框.zip"包含了实现自定义对话框的源代码,这对于理解和实践Android应用的界面定制具有重要意义。 首先,我们要理解Android系统提供的默认对话框类`AlertDialog`和`...

    Android自定义对话框的使用

    这篇博客文章“Android自定义对话框的使用”深入探讨了如何在Android项目中创建和使用自定义对话框。 首先,我们了解自定义对话框的基本概念。对话框(Dialog)是Android中的一个窗口,它浮于应用程序之上,用于向...

    android 自定义对话框.zip

    在Android应用开发中,自定义...通过这个示例项目,你可以深入理解Android自定义对话框的实现原理,以及如何在实际项目中应用。同时,也可以借此机会提高对Android源码阅读和分析的能力,进一步提升你的开发技能。

    android 自定义对话框.zip项目安卓应用源码下载

    通过研究这个项目,你可以更好地理解和掌握Android自定义对话框的实践技巧,从而在自己的项目中灵活运用。无论是学生的学习、个人的技能提升还是公司的项目开发,这个源码都是一个很好的参考资料。

    安卓开发-android 自定义对话框.zip

    在Android开发中,自定义对话框(Custom Dialog)是一个重要的组件,它允许开发者根据应用程序的UI风格和功能需求创建独特且具有交互性的弹出窗口。本资料“安卓开发-android 自定义对话框.zip”可能包含一系列关于...

    Android中自定义对话框的实现

    在Android开发中,自定义对话框(Custom Dialog)是一种常见的用户界面组件,它允许开发者根据应用的风格和需求创建独特的提示或交互界面。本篇将深入探讨如何在Android中实现自定义对话框,并通过示例代码`MyDialog...

Global site tag (gtag.js) - Google Analytics