PopWindowns菜单的创建和基本使用

PopWindowns菜单的创建和基本使用

1、在activity_main.xml布局文件 布局一个按钮控件
2、在res创建一个menu文件夹 -- 在创建一个menu_activity,xml布局文件
代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/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();
 } 
 

效果图示例

202901_NkEE_2542711.png=========================================

PopWindowns菜单 -- 按菜单键时 弹出 相应的图片

1、res/layout里有一个布局popwindown_activity.xml布局文件
//用来设置3张图片
代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/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);
 }

效果图示

202950_mCMj_2542711.png

转载于:https://my.oschina.net/u/2542711/blog/608457

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值