使用dialog时有很多 方法,其中一个就是直接 使用基类Dialog,可用来作一个没有按钮的非模态提示框,它可以直接从系统的主题构造也可从自定义的主题构造。

基本步骤:

  • a,构造
  • b,调用dialot.show()
  • c,设置显示参数,注意用代码设置dialog显示参数要在dialog初始化之后,否则无效,在show之后就可以,如:dimAmout,alpha,width,height等

1,从系统主题构造

     TextView sectionText ;                //显示当前字母提示的dialog用的view
Dialog sectionDlg; //显示当前字母提示的dialog void initSectionText(){
sectionText = new TextView(getActivity());
int textSize = (int) sectionText.getTextSize();
sectionText.setWidth(textSize * );
sectionText.setHeight(textSize * );
sectionText.setGravity(Gravity.CENTER);
sectionText.setTextSize(textSize * );
sectionText.setBackgroundColor(Color.parseColor("#EEE685"));
} void initDlgFromSytemTheme(){
sectionDlg = new Dialog(getActivity(), android.R.style.Theme_Dialog); sectionDlg.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
sectionDlg.setContentView(sectionText);
}

设置dialog的显示参数

     sectionDlg.show();
     Window dialogWindow = sectionDlg.getWindow();
WindowManager.LayoutParams wlp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER); /*wlp.width 可指定具体值,也可指定为ViewGroup.LayoutParams.WRAP_CONTENT等 */
wlp.width = ViewGroup.LayoutParams.WRAP_CONTENT;
wlp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
wlp.alpha = 0.5f;//dialog显示区域透明度。
wlp.dimAmount = 0.0f;//设置dialog背景灰度

2,自定义的主题

     Dialog sectionDlg;                    //显示当前字母提示的dialog
TextView sectionViews[]; //各个section字母对应的TextTiew void initSectionText(){
sectionText = new TextView(getActivity());
int textSize = (int) sectionText.getTextSize();
sectionText.setWidth(textSize * );
sectionText.setHeight(textSize * );
sectionText.setGravity(Gravity.CENTER);
sectionText.setTextSize(textSize * );
sectionText.setBackgroundColor(Color.parseColor("#EEE685"));
} void initDlgFromCustomTheme(){
sectionDlg = new Dialog(getActivity(), R.style.customDlgTheme);
sectionDlg.setContentView(sectionText);
}

dialog的参数设置都在主题中

   <style name="customDlgTheme"  parent="@android:style/Theme.Dialog">
<item name="android:windowIsFloating">true</item><!-- 是否浮现在activity之上 -->
<item name="android:windowFrame">@null</item><!-- 边框 -->
<item name="android:windowNoTitle">true</item> <!-- 无标题栏 -->
<item name="android:windowIsTranslucent">false</item><!-- 是否半透明,背景图或背景色的透明度优先于此 -->
<item name="android:windowBackground">@drawable/selector_dialog_bg</item><!-- 背景透明 -->
<item name="android:backgroundDimEnabled">false</item><!--是否开启dlg显示时后面的灰暗背景,false表示不开启 -->
<item name="android:backgroundDimAmount">1.0</item> <!-- dlg显示时灰暗背景的灰暗值,0.0是无灰暗背景,它的优先级低于backgroundDimEnabled -->
</style>

Android Dialogs(6)Dialog类使用示例:用系统theme和用自定义的theme的更多相关文章

  1. 类图示例-订单系统 / Class Diagram - Order System

    类图示例-订单系统 / Class Diagram - Order System 什么是类图? 类图通过显示它的类和它们之间的关系来概述系统.类图是静态的 - 它们显示交互的内容,但不显示交互时会发生 ...

  2. Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme

    原文:Android菜鸟的成长笔记(6)--剖析源码学自定义主题Theme 还记得在Android菜鸟的成长笔记(3)中我们曾经遇到了一个问题吗?"这个界面和真真的QQ界面还有点不同的就是上 ...

  3. Android Dialogs(1)Dialog简介及Dialog分类

    Dialogs A dialog is a small window that prompts the user to make a decision or enter additional info ...

  4. Android Dialogs(4)Dialog事件处理

    Passing Events Back to the Dialog's Host When the user touches one of the dialog's action buttons or ...

  5. Android 自定义Dialog类,并在Activity中实现按钮监听。

      实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下: 开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的 ...

  6. Android的一个自定义的动态添加Dialog类

    android里面会有自己内置的Dialog的提示框,也算是比较方便的了,但是为了省点时间,我们在项目里面添加了一个自己的Dialog类,这个类实现了能够动态的添加按钮和一些提示语句或者其他的显示效果 ...

  7. 关于JFace的自定义对话框(Dialog类)

    仅仅是使用MessageDialog,InputDialog等JFace中现成的对话框类是无法满足实际项目开发需要的. 很多时候都需要自己定制对话框,自定义对话框只要在Dialog类的基础上作扩展就行 ...

  8. Android判断当前网络是否可用--示例代码

    Android判断当前网络是否可用--示例代码 分类: *07 Android 2011-05-24 13:46 7814人阅读 评论(4) 收藏 举报 网络androiddialogmanagern ...

  9. (转载)实例详解Android快速开发工具类总结

    实例详解Android快速开发工具类总结 作者:LiJinlun 字体:[增加 减小] 类型:转载 时间:2016-01-24我要评论 这篇文章主要介绍了实例详解Android快速开发工具类总结的相关 ...

随机推荐

  1. Java 包(package)详解

    为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包也采用了树形目录的存储方式.同一 ...

  2. 信息传递--NOIP2015 day1 T2--暴力

    这道题我用了判联通量加暴力,但联通量判炸了....然后从code[VS]上看到个不错的代码,就拿来了^_^... 基本思路是去掉环外的点,然后走每一个联通块. #include <iostrea ...

  3. Cocos2D-x搭建新环境注意事项

    网上资源都说安装Python后, 设置环境变量, 解压Cocos2Dx压缩包就OK, 但运行CppTest还是会报错, 以下是错误解决方案: 1. 错误提示 error LNK1123: failur ...

  4. C++(MFC)编程一些注意事项

    一·书写问题 1.括号:左右大括号最好都放在左侧,这样可以很清楚大括号的看清配对情况以及作用域,便于检查也不易出错. 2.强制转换:强制转换表达式时一定要加括号,否则可能只转换了表达式中的单个量,可能 ...

  5. 一个完整openlayer的例子,包括marker,popup等

    整理转自:http://www.blogjava.net/siriusfx/archive/2007/11/26/163104.html openlayers提供了几十个示例,虽然每个示例都很简单,但 ...

  6. DatagramChannel

    DatagramChannel 最后一个socket通道是DatagramChannel.正如SocketChannel对应Socket,ServerSocketChannel对应ServerSock ...

  7. SUID ,SGID ,Sticky

    SUID passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s FILE chmod u-s FILE 如果FILE本身原来就有执行权限, ...

  8. HDU 4811 Ball 贪心

    题目链接: 题目 Ball Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 问题描述 ...

  9. Hbase的安装测试工作

    Hbase的安装测试工作: 安装:http://www.cnblogs.com/neverwinter/archive/2013/03/28/2985798.html 测试:http://www.cn ...

  10. setblendstate & setdepthstencilstate

    http://msdn.microsoft.com/en-us/library/windows/desktop/ff476462(v=vs.85).aspx blendstate blendfacto ...