Android 底部弹出Dialog(横向满屏)

项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog)。

效果图如下所示(只显示关键部分):

步骤如下所示:

1.定义一个dialog的布局(lay_share.xml)

 1 <?xml version="1.0" encoding="utf-8"?>
 2
 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:background="@color/white"
 7     android:orientation="vertical">
 8
 9     <LinearLayout
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         android:gravity="center_vertical"
13         android:orientation="horizontal"
14         android:paddingBottom="@dimen/padding_15"
15         android:paddingTop="@dimen/padding_15">
16
17         <View
18             android:layout_width="0dp"
19             android:layout_height="0dp"
20             android:layout_weight="1" />
21
22         <TextView
23             android:layout_width="wrap_content"
24             android:layout_height="wrap_content"
25             android:drawablePadding="@dimen/padding_5"
26             android:drawableTop="@mipmap/ic_weixin_share"
27             android:gravity="center"
28             android:text="微信"
29             android:textColor="@color/color_999999"
30             android:textSize="@dimen/text_14" />
31
32         <View
33             android:layout_width="0dp"
34             android:layout_height="0dp"
35             android:layout_weight="1" />
36
37         <TextView
38             android:layout_width="wrap_content"
39             android:layout_height="wrap_content"
40             android:drawablePadding="@dimen/padding_5"
41             android:drawableTop="@mipmap/ic_circle_share"
42             android:gravity="center"
43             android:text="朋友圈"
44             android:textColor="@color/color_999999"
45             android:textSize="@dimen/text_14" />
46
47         <View
48             android:layout_width="0dp"
49             android:layout_height="0dp"
50             android:layout_weight="1" />
51
52         <TextView
53             android:layout_width="wrap_content"
54             android:layout_height="wrap_content"
55             android:drawablePadding="@dimen/padding_5"
56             android:drawableTop="@mipmap/ic_weibo_share"
57             android:gravity="center"
58             android:text="微博"
59             android:textColor="@color/color_999999"
60             android:textSize="@dimen/text_14" />
61
62         <View
63             android:layout_width="0dp"
64             android:layout_height="0dp"
65             android:layout_weight="1" />
66     </LinearLayout>
67
68     <View
69         android:layout_width="match_parent"
70         android:layout_height="0.5dp"
71         android:layout_marginLeft="@dimen/padding_10"
72         android:layout_marginRight="@dimen/padding_10"
73         android:background="@color/color_c9c9c9" />
74
75     <TextView
76         android:id="@+id/tv_cancel"
77         android:layout_width="match_parent"
78         android:layout_height="wrap_content"
79         android:gravity="center"
80         android:padding="@dimen/padding_15"
81         android:text="取消"
82         android:textColor="@color/color_666666"
83         android:textSize="@dimen/text_18" />
84 </LinearLayout>

2.定义弹出框弹出动画(dialog_enter.xml)

1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3     <translate
4         android:duration="300"
5         android:fromYDelta="100%p"
6         android:toYDelta="0" />
7 </set>

dialog_enter.xml

3.定义弹出框隐藏动画(dialog_exit.xml)

1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3     <translate
4         android:duration="300"
5         android:fromYDelta="0"
6         android:toYDelta="100%p" />
7 </set>

dialog_exit.xml

4.定义动画style

1 <!--弹出框动画-->
2     <style name="share_animation" parent="android:Animation">
3         <item name="android:windowEnterAnimation">@anim/dialog_enter</item>
4         <item name="android:windowExitAnimation">@anim/dialog_exit</item>
5     </style>

5.定义对话框样式

1 <!-- 对话框样式 -->
2     <style name="dialog_bottom_full" parent="android:style/Theme.Dialog">
3         <item name="android:windowBackground">@android:color/transparent</item>
4         <item name="android:windowNoTitle">true</item>
5         <item name="android:windowIsFloating">true</item>
6         <item name="android:windowContentOverlay">@null</item>
7         <item name="android:scrollHorizontally">true</item>
8     </style>

6.最后,在需要从底部弹出dialog的地方,直接调用showDialog()方法

 1 /**
 2      * 显示分享弹出框
 3      */
 4     private void showDialog() {
 5         if (mShareDialog == null) {
 6             initShareDialog();
 7         }
 8         mShareDialog.show();
 9     }
10
11     /**
12      * 初始化分享弹出框
13      */
14     private void initShareDialog() {
15         mShareDialog = new Dialog(this, R.style.dialog_bottom_full);
16         mShareDialog.setCanceledOnTouchOutside(true);
17         mShareDialog.setCancelable(true);
18         Window window = mShareDialog.getWindow();
19         window.setGravity(Gravity.BOTTOM);
20         window.setWindowAnimations(R.style.share_animation);
21         View view = View.inflate(this, R.layout.lay_share, null);
22         view.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() {
23             @Override
24             public void onClick(View view) {
25                 if (mShareDialog != null && mShareDialog.isShowing()) {
26                     mShareDialog.dismiss();
27                 }
28             }
29         });
30         window.setContentView(view);
31         window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);//设置横向全屏
32     }

大功告成!

收工!

时间: 2024-10-13 21:57:47

Android 底部弹出Dialog(横向满屏)的相关文章

Android 底部弹出提示框的解决办法(使用Activity以及PopupWindow)

本片文章主要谈探讨了如何实现在底部弹出提示框背景为半透明效果的实现.想要实现此种效果一般有两种方式一个是使用Activity设置Theme另一种方式就是使用PopupWindow设置样式实现效果. 一,使用Activity 首先是此activity的布局文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.andro

Android底部弹出iOS7风格对话选项框

<Android底部弹出iOS7风格对话选项框> 效果图如下: 网上流传的Android底部弹出iOS7风格的对话选项框开源代码,原作者不详.我在网上流传的代码基础上改进了一些地方,把原来作为Application发布的代码整理成一个Android的Library,如果在未来的Android项目中需要这样的对话选项框样式,则只需要下载我上次到CSDN的完整库项目(完整的Android库项目代码我已经上传到CSDN,下载地址:http://download.csdn.net/download/z

(转)android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源--IOS_Dialog_Library

本文转载于:http://blog.csdn.net/zhangphil/article/details/44940339 完成这个效果的是使用了 IOS_Dialog_Library 下载地址:http://files.cnblogs.com/files/zzw1994/IOS_Dialog_Library.zip 或者:http://download.csdn.net/download/zhangphil/8573925 下载后导入到Eclipse中,然后作为Library引入到自己的工程中

android开发(31) 动画演示 - 从页面底部向上弹出dialog,消失时逐渐向下

我想实现一个效果,从底部向上逐渐弹出.如下图所示: 1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出. 2.关闭dialog时, dialog缓慢的移动向底部消失.很平滑的效果.     实现方式: 在activity中写代码如下 public class MainActivity extends Activity { Button button1; @Override protected void onCreate(Bundle savedInstanceState) { su

Android Demo---实现从底部弹出窗口

在前面的博文中,小编简单的介绍了如何制作圆角的按钮以及圆角的图片,伴着键盘和手指之间的舞步,迎来新的问题,不知道小伙伴有没有这样的经历,以App为例,点击头像的时候,会从底部弹出一个窗口,有从相册中选择.拍照.取消的字样,点击相应的按钮,完成相应的操作,在小编做项目的过程中遇到类似的问题,小编经过一番捣鼓,终于搞定了ing,今天这篇博文博文,小编简单的介绍一下,如何点击头像,实现从底部弹出窗口的故事,这个故事实现的是弹出滑动窗口,主要是使用了一些设置Activity的样式来实现弹出效果和滑动效果

Android编程:底部弹出的对话框

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:Android Studio 2.2 Preview 3 说明: 两种方法实现底部弹出的对话框: Dialog DialogFragment 推荐用DialogFragment 效果图: 布局文件dialog_select_call.xml: <?xml version="1.0" encoding="utf-8"?> &l

从页面底部向上弹出dialog,消失时逐渐向下(转)

我想实现一个效果,从底部向上逐渐弹出.如下图所示: 1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出. 2.关闭dialog时, dialog缓慢的移动向底部消失.很平滑的效果.     实现方式: 在activity中写代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 public class MainActivity extends Activity {     Butto

【Android】android PopupWindow实现从底部弹出或滑出选择菜单或窗口

转载自:android PopupWindow实现从底部弹出或滑出选择菜单或窗口 Android PopupWindow的使用和分析 Popupwindow的使用 PopupWindow用法

转 android 从底部弹出一个popuwindow,渐入渐出效果。我这里是用在购物车需要选择购买选项的操作。

最近要改客户端,需要实现一个从底部弹出的popuwindow,像我这种渣渣android技术,能整出popuwindow但是整不出动画,百度之,记录一下. 从下面这个地址转的 http://blog.csdn.net/yxhuang2008/article/details/42617805 最近因为要用到PopupWindow,所以,就在网上搜索了一下,发现挺多关于这样的文章,现在我把它们整理了一下. 1.Android PopupWindow 的使用技巧,http://www.cnblogs.