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   欢迎大家的加入

目录
相关文章
|
5天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
4天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1018 0
|
7天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
647 2
|
6天前
|
JavaScript API 开发工具
如何在原生App中调用Uniapp的原生功能?
如何在原生App中调用Uniapp的原生功能?
318 139
|
5天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
435 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大