博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PopupWindow底部弹出
阅读量:6207 次
发布时间:2019-06-21

本文共 3030 字,大约阅读时间需要 10 分钟。

说明:从屏幕底部弹出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   欢迎大家的加入

你可能感兴趣的文章
ios下使用rsa算法与php进行加解密通讯
查看>>
【JSP笔记】第三章 JSP内置对象【上】
查看>>
腾讯的大饼 微信的价值
查看>>
mysql 中某个字段相同的数据拼接起来
查看>>
mysql的一些常用函数
查看>>
compress命令--Linux命令应用大词典729个命令解读
查看>>
我的友情链接
查看>>
Qt第五课 无构造函数可以接受源类型,或构造函数重载决策不明确
查看>>
十进制小数转换二进制的问题
查看>>
Linux基础--MBR/GPT与parted
查看>>
scrapy常用工具备忘
查看>>
Redis(1):简介
查看>>
Day2-数据类型
查看>>
linux 安装maven
查看>>
15个Java多线程面试题
查看>>
第四章 大网高级 NSSA
查看>>
Exchange Server 2013日记功能
查看>>
零基础学Java的10个方法
查看>>
nginx的upstream模块安装
查看>>
北京尚学堂|程序员的智慧
查看>>