`
zhangyf1987hb
  • 浏览: 83887 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 自定义Dialog

阅读更多

 

看上面的图,其实这个页面的UI实现不复杂,来讲讲这个半透明的弹出对话框窗口是如何实现的,首先新建名为AuthorizeActivity.java的Activity,并且在AndroidManifest.xml文件中添加这个Activity,这样这个Activity才能被使用,接下来为这个Activity新建名为authorize.xml的Layout,这个Layout很简单只负责logo小图标显示,背景部分和透明窗口都是有代码来实现。

完成Layout建立后在AuthorizeActivity的onCreate方法添加如下代码,设置authorize.xml为AuthorizeActivity的页面Layout:

  • @Override  
  • public void onCreate(Bundle savedInstanceState) {  
  • super.onCreate(savedInstanceState);  
  • setContentView(R.layout.authorize);  
  • .......  
  • }  

      接下来是本文的重点部分,半透明弹窗用Dialog控件进行实现,首先为这个半透明弹窗新建一个名为dialog.xml的Layout,这个Layout主要是对4个元素进行布局,如图所示分别为i小图标、信息提示、中间文字、开始按钮,首先用LinearLayout对i小图标和信息提示进行水平布局,中间文字以一个TextView跟在下面,对于开始按钮是用RelativeLayout进行底部对齐显示。具体代码如下:

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout  
    3. xmlns:android="http://schemas.android.com/apk/res/android"  
    4. android:layout_width="wrap_content"  
    5. android:layout_height="wrap_content"  
    6. android:orientation="vertical"  
    7. android:padding="10dip">  
    8. <LinearLayout  
    9. android:layout_width="wrap_content"  
    10. android:layout_height="wrap_content"  
    11. android:orientation="horizontal">  
    12. <ImageView  
    13. android:layout_width="wrap_content"  
    14. android:layout_height="wrap_content"  
    15. android:src="@drawable/info_icon">  
    16. </ImageView>  
    17. <TextView  
    18. android:layout_width="wrap_content"  
    19. android:layout_height="wrap_content"  
    20. android:text="信息提示"  
    21. android:textSize="13px"  
    22. android:textColor="#219ac6"  
    23. android:layout_marginLeft="5dip">  
    24. </TextView>  
    25. </LinearLayout>  
    26. <TextView  
    27. android:id="@+id/text_info"  
    28. android:layout_marginTop="6px"  
    29. android:layout_width="200px"  
    30. android:layout_height="wrap_content"  
    31. android:textColor="#686767"  
    32. android:textSize="14px"  
    33. android:text="第一次使用需要输入您的新浪微博账号和密码进行登录授权">  
    34. </TextView>  
    35. <RelativeLayout  
    36. android:layout_width="fill_parent"  
    37. android:layout_height="40px">  
    38. <LinearLayout  
    39. android:layout_width="wrap_content"  
    40. android:layout_height="wrap_content"  
    41. android:orientation="horizontal"  
    42. android:layout_centerHorizontal="true"  
    43. android:layout_alignParentBottom="true">  
    44. <ImageButton  
    45. android:id="@+id/btn_start"  
    46. android:layout_width="80px"  
    47. android:layout_height="31px"  
    48. android:src="@drawable/btn_start_selector">  
    49. </ImageButton>  
    50. <ImageButton  
    51. android:id="@+id/btn_cancel"  
    52. android:layout_width="80px"  
    53. android:layout_height="31px"  
    54. android:layout_marginLeft="8px"  
    55. android:src="@drawable/btn_cancel_selector">  
    56. </ImageButton>  
    57. </LinearLayout>  
    58. </RelativeLayout>  
    59.   
    60. </LinearLayout>  

     

     

         完成了半透明弹窗的Layout定义接下来我们要做的就是为它写一个自定义样式来实现我们想要的显示效果,首先我们需准备一个圆角的半透明png图片名为dia_bg.png并且添加到drawable中,接下来再res/values文件夹新建名为 dialogStyle.xml的resources样式文件,具体代码如下:

     

     

     

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <resources>  
    3. <mce:style name="dialog" parent="@android:style/Theme.Dialog"><!--  
    4. <item name="android:windowFrame">@null</item>  
    5. <item name="android:windowIsFloating">true</item>  
    6. <item name="android:windowIsTranslucent">false</item>  
    7. <item name="android:windowNoTitle">true</item>  
    8. <item name="android:windowBackground">@drawable/dia_bg</item>  
    9. <item name="android:backgroundDimEnabled">false</item>  
    10. --></mce:style><style name="dialog" parent="@android:style/Theme.Dialog" mce_bogus="1"><item name="android:windowFrame">@null</item>  
    11. <item name="android:windowIsFloating">true</item>  
    12. <item name="android:windowIsTranslucent">false</item>  
    13. <item name="android:windowNoTitle">true</item>  
    14. <item name="android:windowBackground">@drawable/dia_bg</item>  
    15. <item name="android:backgroundDimEnabled">false</item></style>  
    16. </resources>  

     

     

    这个样式文件的说明如下

      parent="@android:style/Theme.Dialog" :在系统Dialog样式基础上,相当于继承系统样式

      <item name="android:windowFrame">@null</item> :Dialog的windowFrame框为无

      <item name="android:windowIsFloating">true</item>:是否浮现在activity之上

      <item name="android:windowIsTranslucent">false</item>:是否半透明

      <item name="android:windowNoTitle">true</item>:是否显示title

      <item name="android:windowBackground">@drawable/dia_bg</item>:设置dialog的背景

      <item name="android:backgroundDimEnabled">false</item>: 背景是否模糊显示

      接下来写java代码把这个半透明弹窗显示出来,在AuthorizeActivity的onCreate方法添加如下代码:

     

     

     

     

    1. ......  
    2. View diaView=View.inflate(this, R.layout.dialog, null);  
    3. dialog=new Dialog(AuthorizeActivity.this,R.style.dialog);  
    4. dialog.setContentView(diaView);  
    5. dialog.show();  
    6. ......  
分享到:
评论

相关推荐

    android 自定义Dialog提示+动画效果

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求进行个性化设计。本文将深入探讨如何实现一个带有动画效果的自定义Dialog,并以"android 自定义Dialog提示+动画效果"为主题...

    Android 自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建具有...通过学习和实践,你将能够熟练掌握Android自定义Dialog的技巧,从而在应用开发中提供更加丰富和个性化的用户体验。

    Android自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建出独具特色的对话框。本文将深入探讨如何在Android中实现自定义Dialog,并提供相关实践步骤。 首先,我们来理解一下...

    Android自定义dialogDemo

    `Android自定义dialogDemo`是一个实例,帮助开发者理解如何在Android应用中创建并使用自定义的Dialog。下面将详细解释相关知识点。 1. **Dialog基础** Dialog是Android中的一个对话框组件,通常用于显示临时的通知...

    android自定义Dialog的简单实现

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格或者特定功能来创建具有...在学习和实践中,多参考官方文档和社区资源,如CSDN博客,能帮助你更好地掌握Android自定义Dialog的技巧。

    Android自定义Dialog 界面比较好看

    标题“Android自定义Dialog 界面比较好看”表明我们将探讨如何创建一个视觉上吸引人的自定义Dialog。描述中提到的链接是一个CSDN博客文章,详细介绍了如何实现这一目标。 自定义Dialog的基础在于创建一个新的布局...

    Android自定义Dialog

    在Android应用开发中,Dialog是一种重要的用户交互组件,它用于在主界面之上显示临时的通知或进行简单的交互。本文将深入探讨如何自定义...通过不断实践和优化,你将能够熟练地创建出满足各种需求的自定义Dialog。

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    在Android开发中,自定义Dialog是一种常见的需求,用于提供一种轻量级的用户交互界面,如提示信息或者进行选择操作。本示例是关于如何创建一个具有多选功能的Dialog,结合了Dialog、ListView和CheckBox的使用。下面...

    android自定义dialog加载窗

    "android自定义dialog加载窗"这个主题主要涵盖了如何在Android应用程序中创建自定义的加载对话框,通常用于显示数据加载或处理过程,给用户以交互反馈。 1. **Dialog基础知识**: Dialog是Android系统提供的一种轻...

    Android 自定义Dialog,文字动态加载效果

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何通过继承AlertDialog来实现一个具有“加载中...”动态效果的自定义Dialog。 首先,...

    android自定义dialog嵌套listview

    通过以上步骤,我们便成功实现了Android自定义Dialog嵌套ListView的功能,并为ListView的每个条目添加了点击事件处理。这种方式极大地扩展了Dialog的使用场景,使其能够在提供多种选项或展示大量数据时发挥重要作用...

    android 自定义dialog Demo

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建具有独特外观和交互的对话框。这篇博客“android 自定义dialog Demo”将深入探讨如何在Android应用程序中实现自定义...

    android 自定义Dialog下载文件

    android自定义Dialog下载文件 ,在自定义的Dialog上显示文件下载的速度和ProgressBar进度,共享给大家! 欢迎指点提议 Email:vipa1888@163.com QQ 840950105 Author: spring sky

    android自定义dialog嵌套listview自适应屏幕

    综上所述,实现“android自定义dialog嵌套listview自适应屏幕”涉及了Android的多个核心组件和概念,包括Dialog的自定义、ListView的适配、屏幕自适应策略以及UI测试。理解并掌握这些知识点,对于提升Android应用的...

    android自定义dialog样式

    这篇博客“android自定义dialog样式”深入探讨了如何通过源码和工具来实现这一目标。接下来,我们将详细讲解相关知识点。 1. **Dialog基础知识** Dialog是Android中的一个组件,它用于在用户界面中弹出一个临时...

    android自定义dialog下载

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建具有独特外观和交互方式的对话框。本文将深入探讨如何在Android中实现自定义Dialog,包括基本概念、步骤和一些实用...

    android自定义dialog和Toast

    在Android开发中,自定义Dialog和Toast是提升用户体验和界面个性化的重要手段。Dialog通常用于向用户展示重要信息或需要用户做出决策的情况,而Toast则用于轻量级的通知,不打断用户的当前操作。以下是对如何自定义...

    很好android自定义dialog加载转圈等待,适合初学,透明+正常两种主题

    在Android开发中,自定义Dialog是一种常见的需求,用于提供一种用户交互的方式,通常用来显示一些临时的通知或进行一些简短的操作。在这个主题中,我们主要关注如何创建一个自定义的加载等待Dialog,它包括透明和...

    Android 自定义Dialog

    总结来说,Android自定义Dialog涉及到布局设计、Dialog类的创建、内容设置、事件处理以及封装复用等多个方面。通过理解并掌握这些步骤,开发者可以更灵活地控制Dialog的展示效果,提升应用的用户体验。同时,合理...

Global site tag (gtag.js) - Google Analytics