弹出窗口的两种实现方式 PopupWindow 和 Activity
2012-11-20 12:18
399 查看
本人小菜一个。目前只见过两种弹出框的实现方式,第一种是最常见的PopupWindow,第二种也就是Activity的方式是前几天才见识过。感觉很霸气哦。没想到,activity也可以做伪窗口。
先贴上最常见的方法,主要讲activity的方法。
一、弹出PopupWindow
View Code
分析,弹出exit这个框很简单,本身就是activity,在主界面用startavtivity等方法像普通activity启动。
关键是如何做到点击其他地方退出和如何关闭程序。
1、点击其他地方退出,只要监听OnClickListener让所有的点击都退出就行了(除了xml中指定按钮事件之外)。
2、退出主程序。只要在出程序中将主程序自己设置成静态对象,在外部调用即可 public static MainWeixin instance=null;
上面的布局和activity并不能将activity的窗体展现在主界面之上,看起来像个弹出框。下面是弹出框的styles配置:
下面我们来分析一下这个布局的含义及重点:
重点1、<item name="android:windowBackground">@android:color/transparent</item>窗口背景色
重点2、<item name="android:windowFrame">@null</item>Dialog的windowFrame框为无
重点4、<item name="android:windowIsFloating">true</item>是否浮现在activity之上
重点5、<item name="android:windowIsTranslucent">true</item>窗口是否半透明——是(与第一条配合使用)
重点6、<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>窗口弹出效果
重点7、<item name="android:backgroundDimEnabled">true</item> 是否允许背景模糊
重点8、<item name="android:windowContentOverlay">@null</item>这个不设置的话,可能会出现边框黑线
[b]以上代码都是牛人们的功劳,我拿来做一分析,给更多需要的朋友。
我在众多牛人的指引下一步步成长,感谢牛人们。
参考链接:
先贴上最常见的方法,主要讲activity的方法。
一、弹出PopupWindow
View Code
1 <?xml version="1.0" encoding="UTF-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:id="@+id/exit_layout" 4 android:layout_width="280dp" 5 android:layout_height="wrap_content" 6 android:gravity="center_horizontal" 7 android:orientation="vertical" 8 android:background="@drawable/confirm_dialog_bg2" > 9 10 <TextView 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:layout_marginTop="4dp" 14 android:padding="5dp" 15 android:textColor="#333" 16 android:textSize="20sp" 17 android:text="退出微信" /> 18 19 <TextView 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:textColor="#333" 23 android:layout_marginTop="1dp" 24 android:padding="10dp" 25 android:textSize="16sp" 26 android:gravity="center_horizontal" 27 android:text="退出后,你将收不到新的消\n息.确定要退出?" /> 28 29 30 <LinearLayout 31 android:layout_width="wrap_content" 32 android:layout_height="wrap_content" 33 android:layout_marginTop="33dp" 34 android:layout_marginBottom="8dp" 35 > 36 37 <Button 38 android:id="@+id/exitBtn0" 39 android:layout_width="110dp" 40 android:layout_height="wrap_content" 41 android:text="是" 42 android:textSize="16sp" 43 android:textColor="#fff" 44 android:background="@drawable/btn_style_green" 45 android:gravity="center" 46 android:onClick="exitbutton0" 47 /> 48 49 <Button 50 android:id="@+id/exitBtn1" 51 android:layout_width="110dp" 52 android:layout_height="wrap_content" 53 android:layout_marginLeft="10dp" 54 android:text="否" 55 android:textSize="16sp" 56 android:textColor="#333" 57 android:background="@drawable/btn_style_white" 58 android:gravity="center" 59 android:onClick="exitbutton1" 60 /> 61 </LinearLayout> 62 63 </LinearLayout>
分析,弹出exit这个框很简单,本身就是activity,在主界面用startavtivity等方法像普通activity启动。
关键是如何做到点击其他地方退出和如何关闭程序。
1、点击其他地方退出,只要监听OnClickListener让所有的点击都退出就行了(除了xml中指定按钮事件之外)。
2、退出主程序。只要在出程序中将主程序自己设置成静态对象,在外部调用即可 public static MainWeixin instance=null;
上面的布局和activity并不能将activity的窗体展现在主界面之上,看起来像个弹出框。下面是弹出框的styles配置:
1 <style name="MyDialogStyle"> 2 <item name="android:windowBackground">@android:color/transparent</item> 3 <item name="android:windowFrame">@null</item> 4 <item name="android:windowNoTitle">true</item> 5 <item name="android:windowIsFloating">true</item> 6 <item name="android:windowIsTranslucent">true</item> 7 <item name="android:windowContentOverlay">@null</item> 8 <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 9 <item name="android:backgroundDimEnabled">true</item> 10 </style>
下面我们来分析一下这个布局的含义及重点:
重点1、<item name="android:windowBackground">@android:color/transparent</item>窗口背景色
重点2、<item name="android:windowFrame">@null</item>Dialog的windowFrame框为无
重点4、<item name="android:windowIsFloating">true</item>是否浮现在activity之上
重点5、<item name="android:windowIsTranslucent">true</item>窗口是否半透明——是(与第一条配合使用)
重点6、<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>窗口弹出效果
重点7、<item name="android:backgroundDimEnabled">true</item> 是否允许背景模糊
重点8、<item name="android:windowContentOverlay">@null</item>这个不设置的话,可能会出现边框黑线
[b]以上代码都是牛人们的功劳,我拿来做一分析,给更多需要的朋友。
我在众多牛人的指引下一步步成长,感谢牛人们。
参考链接:
Dialog 顶部黑线问题
demo下载
buaa版防微信demo http://download.csdn.net/detail/win_xiang/4788158相关文章推荐
- 弹出窗口的两种实现方式 PopupWindow 和 Activity
- 弹出窗口的两种实现方式 PopupWindow 和 Activity
- 弹出窗口的两种实现方式 PopupWindow 和 Activity
- 弹出窗口的两种实现方式 PopupWindow 和 Activity
- 弹出窗口的两种实现方式 PopupWindow 和 Activity
- Android popupwindow 和 Activity弹出窗口实现方式
- android PopupWindow 和 Activity弹出窗口实现方式
- android PopupWindow 和 Activity弹出窗口实现方式
- 用PopupWindow,Activity以及Dialog不同方式实现从底部弹出对话框
- android Activity实现从底部弹出或滑出选择菜单或窗口(不需要dialog或popupwindow)
- 【Android】Activity和PopupWindow都实现从底部弹出或滑出选择菜单或窗口
- 使用PopupWindow和Activity两种不同的方式实现弹窗效果
- 使用PopupWindow和Activity两种不同的方式实现弹窗效果
- 滑动菜单方案之二: Activity实现从底部弹出或滑出选择菜单或窗口
- Android开发实现popupWindow弹出窗口自定义布局与位置控制方法
- PopupWindow实现从底部弹出或滑出选择菜单或窗口
- Android弹出窗口的实现(PopupWindow)
- Android中Fragment与Activity之间的交互(两种实现方式)
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
- android弹出窗口的实现(PopupWindow)