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开发
Android BottomSheetDialog使用实现底部拖动弹窗
Android BottomSheetDialog使用实现底部拖动弹窗
413 0
Android BottomSheetDialog使用实现底部拖动弹窗
|
XML API 数据格式
侧滑按钮
导入闭包 将以下语句倒入目录下build.gradle文件内
135 0
侧滑按钮
|
Android开发
EditText(防止进入页面就获取焦点弹出键盘)
(创建于2016/11/7) 只需要在该页面所在的activity的manifest中添加 android:windowSoftInputMode="adjustPan|stateHidden" stateHidden是为了隐藏键盘,adjustPa...
1035 0
第47天:拖动弹出框
假期结束,继续学习! 拖动弹出框效果 1 DOCTYPE html> 2 3 4 5 6 7 *{margin:0;padding:0;} 8 .
807 0
|
XML Android开发 数据格式
按钮点击效果总结
一、在Android 开发中控制按钮或者listview 点击效果 1:主要元素 定义要在某些状态期间使用的可绘制对象,如其属性所述。必须是 元素的子项。
828 0
使用Toolbar + DrawerLayou实现菜单侧滑,改变toolbar左上角图标
侧边栏具体实现可以参照http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0303/2522.html getSupportActionBar().setDisplayHomeAsUpEnabled(true)设置返回键可用,出现带箭头的这个返回图标。
1114 0
|
Android开发 Java 数据格式
AndroidSweetSheet:从底部弹出面板(1)
 AndroidSweetSheet:从底部弹出面板(1) AndroidSweetSheet又是一个从底部弹出面板的开源项目。
878 0
|
Android开发 容器 Java
Android BottomSheet:底部弹出Fragment面板(4)
 Android BottomSheet:底部弹出Fragment面板(4) BottomSheet不仅可以弹出轻量级的定制好的面板(见附录文章5,6,7),还可以弹出“重”的fragment,但是此fragment是BottomSheetFragment。
2075 0

热门文章

最新文章