zoukankan      html  css  js  c++  java
  • 安卓学习笔记:使用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>

    复制代码

  • 相关阅读:
    cf 1452E. Two Editorials(中点排序)
    cf 888G
    cf 1447E. Xor Tree(二进制分治)
    2020ICPC·小米 网络选拔赛第一场 E-Phone Network (线段树)
    cf 1447D. Catching Cheaters ( 最大子段和思想 dp )
    POJ
    cf 1437F.Emotional Fishermen(计数dp)
    霍夫丁不等式
    切比雪夫不等式
    霍夫丁不等式引理证明
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/3535876.html
Copyright © 2011-2022 走看看