安卓学习笔记:使用PopupWindow创建简单菜单
PopupWindow是一个弹出式窗口,它可以展示任意View。他会浮在当前窗口的上方展示。
下面看代码:
public class MyActivity extends Activity
{
private PopupWindow menu;
private LayoutInflater inflater;
private View layout;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//实例化PopupWindow创建菜单
initMenu();
}
//判断按键 菜单的显示与隐藏
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(!menu.isShowing()&&keyCode == KeyEvent.KEYCODE_MENU){
show();
}else{
menu.dismiss();
}
if(keyCode == KeyEvent.KEYCODE_BACK&&menu.isShowing()){
menu.dismiss();
}
return true;
}
//实例化PopupWindow创建菜单
private void initMenu(){
//获取LayoutInflater实例
inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
//获取弹出菜单的布局
layout = inflater.inflate(R.layout.menu,null);
//设置popupWindow的布局
menu = new PopupWindow(layout, WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT);
}
//显示菜单
private void show(){
//设置位置
menu.showAtLocation(this.findViewById(R.id.main), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0); //设置在屏幕中的显示位置
}
}
复制代码
菜单的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/icon_1"
android:background="@drawable/icon_1"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/icon_2"
android:background="@drawable/icon_2"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/icon_3"
android:background="@drawable/icon3"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/icon_4"
android:background="@drawable/icon4"
android:layout_width="40dp"
android:layout_height="40dp"/>
</LinearLayout>
复制代码
转载于:https://www.cnblogs.com/xiaochao1234/p/3535876.html
安卓学习笔记:使用PopupWindow创建简单菜单相关推荐
- Android:安卓学习笔记之navigation的简单理解和使用
Android navigation的简单理解和使用 1 .基本概念 1.1.背景 1.2.含义 2.组成 2.1.Navigation graph 2.2.NavHostFragment 2.3.N ...
- Android:安卓学习笔记之Bitmap的简单理解和使用
Android Bitmap的简单理解和使用 Android Bitmap 一.Bitmap的定义 二.Bitmap的格式 2.1 存储格式 2.2 压缩格式 三.Bitmap创建方法 3.1 Bit ...
- blfs(systemv版本)学习笔记-使用apache创建简单的网页服务器
apache项目地址:http://www.linuxfromscratch.org/blfs/view/stable/server/apache.html 一.编译安装apache apache的依 ...
- 2020年安卓学习笔记目录
文章目录 一.讲课笔记 二.安卓案例 三.安卓实训项目 四.学生安卓学习博客 五.安卓课后作业 (一)界面设计练习 1.制作登录界面 2.制作部队管理界面 3.制作灭火救援界面 4.制作交付界面 5. ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
- 安卓学习笔记07:事件处理、窗口跳转与传递数据
文章目录 零.学习目标 一.三个基本控件 1.标签控件(TextView) 2.编辑框控件(EditText) 3.按钮控件(Button) 二.安卓事件处理机制 (一)安卓事件处理概述 (二)安卓事 ...
- ROS学习笔记八:创建ROS msg和srv
ROS学习笔记八:创建ROS msg和srv 本节主要讲述了如何创建和建立ROS msg和srv,同时使用命令行工具rosmsg.rossrv和roscp. msg和srv简介 msg:描述ROS m ...
- ROS学习笔记三:创建ROS软件包
,# ROS学习笔记三:创建ROS软件包 catkin软件包的组成 一个软件包必须满足如下条件才能被称之为catkin软件包: 这个软件包必须包含一个catkin编译文件package.xml(man ...
最新文章
- 相机标定 matlab opencv ROS三种方法标定步骤(2)
- [kuangbin带你飞]专题五 并查集 E - 食物链 (带权并查集)
- LeetCode 191 Number of 1 Bits
- WSFC 仲裁模型选择
- 高并发编程-Daemon Thread的创建以及使用场景分析
- oracle 信用检查,Oracle EBS 信用(Credit)额度(1)-基础设置
- visual 对话框之间调用_两套S71200之间实现S7通讯的方法
- C++打印浮点数时保留两位小数
- 学python开发必须要会wsgi么_python Web开发你要理解的WSGI uwsgi详解
- LINUX之samba服务器的安装与配置(基于redhat 6.3发行版)
- python3入门与实践
- python收集参数_Python 中函数的 收集参数 机制
- TurboFan的故事
- 树莓派3B的默认用户名和密码
- Lync添加自定义菜单
- 大数据分析——暑期黑马《延禧攻略》到底有多火!
- 租衣APP开发前景分析
- android 4.0 原生短信,Android 4.0 短信发不出去解决办法
- 正确的iconv使用方法
- 司铭宇老师谈大客户销售技巧之如何做好大客户营销
热门文章
- 输出整数各位数字 (15 分)
- PTA10、统计字符个数 (10 分)
- linux 内核 md5 算法_Linux内核中的数据结构和算法
- mysql 语句账号注入_mysql中SQL语句的注入问题
- linux mysql降权_怎样将mysql数据库root降权
- 【LOJ】#3123. 「CTS2019 | CTSC2019」重复
- setCharacterEncoding 是在request.getParameter获取参数之前 设置request的编码格式 一步到位...
- 流式大数据计算实践(4)----HBase安装
- node模块加载机制。
- Yii2 认证实现原理和示例