PopWindowns菜单的创建和基本使用
1、在activity_main.xml布局文件 布局一个按钮控件
2、在res创建一个menu文件夹 -- 在创建一个menu_activity,xml布局文件代码<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="" > <item android:id="@+id/user_set" android:title="用户设置"/> <item android:id="@+id/system_set" android:title="系统设置"/></menu>
----------------3、创建PopWindowns菜单和基本使用
代码
//1、找到布局文件
convertView = LayoutInflater.from(this).inflate(R.layout.popwindown_activity, null); //2、new 一个PopupWindow //用LayoutParams -- 设置菜单长度和宽度popupwindow = new PopupWindow(convertView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); //按钮 监听事件 public void popMenu(View view){ //创建一个PopupMenu 菜单 //* 1、new一个PopupMenu PopupMenu popmenu = new PopupMenu(this, view); // 2、获取菜单 -- popmenu.getMenu() getMenuInflater().inflate(R.menu.menu_activity, popmenu.getMenu()); //显示菜单 // 3、显示菜单 popmenu.show(); }效果图示例
=========================================
PopWindowns菜单 -- 按菜单键时 弹出 相应的图片
1、res/layout里有一个布局popwindown_activity.xml布局文件
//用来设置3张图片代码<LinearLayout xmlns:android=""
xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000" android:orientation="horizontal" ><ImageView
android:id="@+id/img_collect" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="onclick_img" android:src="@drawable/collectcontent" /><ImageView
android:id="@+id/img_back" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="onclick_img" android:src="@drawable/contentback" /><ImageView
android:id="@+id/img_share" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="onclick_img" android:src="@drawable/contentshare" /></LinearLayout>
------------------
2、实现按菜单键时在模拟器底部弹出相应的图片
代码
//1、找到布局文件
convertView = LayoutInflater.from(this).inflate(R.layout.popwindown_activity, null); //2、new 一个PopupWindow //用LayoutParams -- 设置菜单长度和宽度popupwindow = new PopupWindow(convertView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); //通过 menu菜单按钮 来触发 @Override//重写onKeyDown方法 -- 然后对菜单键进行判断 public boolean onKeyDown(int keyCode, KeyEvent event) { //判断是否是 Menu(菜单)键 switch(keyCode){ case KeyEvent.KEYCODE_MENU://菜单键 if(popupwindow.isShowing()){//菜单键 显示 popupwindow.dismiss(); }else{ popupwindow.showAtLocation(convertView, Gravity.BOTTOM, 0, 0); } break; case KeyEvent.KEYCODE_BACK://返回键 if(popupwindow.isShowing()){ popupwindow.dismiss(); return false; } break; } return super.onKeyDown(keyCode, event); }效果图示