PopupWindow底部弹出

简介:

说明:从屏幕底部弹出PopupWindow,有弹出隐藏动画效果.背景设置透明度.

效果图如下:



1.MainActivity.java   显示popwindow,宽高跟屏幕大小一样,设置一个透明度背景

  1. public class MainActivity extends Activity {  
  2.     @Override  
  3.     public void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         setContentView(R.layout.activity_main);  
  6.   
  7.         findViewById(R.id.button).setOnClickListener(new OnClickListener() {  
  8.             public void onClick(View v) {  
  9.                 showPopwindow();  
  10.             }  
  11.         });  
  12.   
  13.     }  
  14.   
  15.     private void showPopwindow() {  
  16.         View parent = ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0);  
  17.         View popView = View.inflate(this, R.layout.camera_pop_menu, null);  
  18.   
  19.         Button btnCamera = (Button) popView.findViewById(R.id.btn_camera_pop_camera);  
  20.         Button btnAlbum = (Button) popView.findViewById(R.id.btn_camera_pop_album);  
  21.         Button btnCancel = (Button) popView.findViewById(R.id.btn_camera_pop_cancel);  
  22.   
  23.         int width = getResources().getDisplayMetrics().widthPixels;  
  24.         int height = getResources().getDisplayMetrics().heightPixels;  
  25.   
  26.         final PopupWindow popWindow = new PopupWindow(popView,width,height);  
  27.         popWindow.setAnimationStyle(R.style.AnimBottom);  
  28.         popWindow.setFocusable(true);  
  29.         popWindow.setOutsideTouchable(false);// 设置允许在外点击消失  
  30.   
  31.         OnClickListener listener = new OnClickListener() {  
  32.             public void onClick(View v) {  
  33.                 switch (v.getId()) {  
  34.                 case R.id.btn_camera_pop_camera:  
  35.                       
  36.                     break;  
  37.                 case R.id.btn_camera_pop_album:  
  38.                       
  39.                     break;  
  40.                 case R.id.btn_camera_pop_cancel:  
  41.                       
  42.                     break;  
  43.                 }  
  44.                 popWindow.dismiss();  
  45.             }  
  46.         };  
  47.   
  48.         btnCamera.setOnClickListener(listener);  
  49.         btnAlbum.setOnClickListener(listener);  
  50.         btnCancel.setOnClickListener(listener);  
  51.   
  52.         ColorDrawable dw = new ColorDrawable(0x30000000);  
  53.         popWindow.setBackgroundDrawable(dw);  
  54.         popWindow.showAtLocation(parent, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 00);  
  55.     }  
  56.   
  57. }  

2.camera_pop_menu.xml   Popupwindow加载的布局文件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="wrap_content"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <LinearLayout  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:layout_alignParentBottom="true"  
  11.         android:layout_margin="10dp"  
  12.         android:orientation="vertical" >  
  13.   
  14.         <Button  
  15.             android:id="@+id/btn_camera_pop_camera"  
  16.             style="@style/txt_camera_pop_menu"  
  17.             android:layout_width="match_parent"  
  18.             android:layout_height="45dp"  
  19.             android:background="@drawable/pop_first_selector"  
  20.             android:text="@string/camera_pop_camera"  
  21.             android:textSize="18sp" />  
  22.   
  23.         <Button  
  24.             android:id="@+id/btn_camera_pop_album"  
  25.             style="@style/txt_camera_pop_menu"  
  26.             android:layout_width="match_parent"  
  27.             android:layout_height="45dp"  
  28.             android:background="@drawable/pop_last_selector"  
  29.             android:text="@string/camera_pop_album"  
  30.             android:textSize="18sp" />  
  31.   
  32.         <Button  
  33.             android:id="@+id/btn_camera_pop_cancel"  
  34.             style="@style/txt_camera_pop_menu"  
  35.             android:layout_width="match_parent"  
  36.             android:layout_height="45dp"  
  37.             android:layout_marginTop="10dp"  
  38.             android:background="@drawable/pop_single_selector"  
  39.             android:text="@string/camera_pop_cancel"  
  40.             android:textSize="18sp" />  
  41.     </LinearLayout>  
  42.   
  43. </RelativeLayout>  


点击下载源码

推荐下自己创建的android QQ群:202928390   欢迎大家的加入

目录
相关文章
|
Android开发
EditText(防止进入页面就获取焦点弹出键盘)
(创建于2016/11/7) 只需要在该页面所在的activity的manifest中添加 android:windowSoftInputMode="adjustPan|stateHidden" stateHidden是为了隐藏键盘,adjustPa...
1090 0
|
前端开发 JavaScript
newWindow 弹出的新窗口居中显示
test function newWindow(){ var iWidth=500; //弹出窗口的宽度; var iHeight=400; //弹出窗口的高度; var iTop = (window.
677 0
|
XML API 数据格式
侧滑按钮
导入闭包 将以下语句倒入目录下build.gradle文件内
215 0
侧滑按钮
|
Android开发
浅谈PopupWindow弹出菜单
实现将一个View显示在某一位置,而且是浮于当前窗口   首先要有一个要显示的view的布局,可以是任意View,包括ViewGroup 1 2 8 9 10 17   然后主界面布局文件 1 6 7 ...
928 0
|
Java Android开发 定位技术
popupWindow 弹出菜单
引用:http://blog.csdn.net/kkfdsa132/article/details/6403404      在使用UC-WebBrowser时,你会发现它的弹出菜单跟系统自带的菜单不一样。
937 0
|
Android开发
Android - 保持在底部的按钮栏,上面是滚动的ScrollView
这里要用到相对布局,在ScrollView里放置自己的内容views [html] view plaincopyprint?                                                           看来各种布局,特别是常用的几个还要好好研究一下啊。
675 0
使用Toolbar + DrawerLayou实现菜单侧滑,改变toolbar左上角图标
侧边栏具体实现可以参照http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0303/2522.html getSupportActionBar().setDisplayHomeAsUpEnabled(true)设置返回键可用,出现带箭头的这个返回图标。
1164 0
|
Windows
无标题栏对话框的拖动
实际上,用鼠标点住对话框背景进行拖动操作并不难,但是你必须了解在标题栏里拖动窗口的原理。Windows首先确定鼠标点中了那个窗口,然后向那个窗口发送一个WM_NCHITTEST消息找出此窗口的哪个“非客户区”(如边界、最大化/最小化按钮、菜单、标题等等)拥有鼠标光标。
787 0