当前位置: 源码素材网 » Android教程 » 详情页

Android 仿微信右上角弹出菜单

  •   时间:2019-03-13
  • 概述:弹出菜单

Android UI 菜单与对话框制作实例,仿微信右上角弹出菜单。主要使用PopupWindow类及其构造方法、View.OnTouchListener接口中的OnTouch事件, 实现微信右上角弹出菜单。

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
public class MainActivity extends AppCompatActivity {
    PopupWindow popupWindow;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void OnMenu(View view){
        // 获取自定义的菜单布局文件
        View popupWindow_view = getLayoutInflater().inflate(R.layout.menu, null,false);
        // 创建PopupWindow实例,设置菜单宽度和高度为包裹其自身内容
        popupWindow = new PopupWindow(popupWindow_view, ActionBar.LayoutParams.WRAP_CONTENT,
                ActionBar.LayoutParams.WRAP_CONTENT, true);
        //设置菜单显示在按钮的下面
        popupWindow.showAsDropDown(findViewById(R.id.btn_menu),0,0);
        // 点击其他地方消失
        popupWindow_view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                //如果菜单存在并且为显示状态,就关闭菜单并初始化菜单
                if (popupWindow != null && popupWindow.isShowing()) {
                    popupWindow.dismiss();
                    popupWindow = null;
                }
                return false;
            }
        });
    }
}

在设置菜单显示的位置时,可以尝试使用showAtLocation(View parent,int gravity,int x,int y)方法, 根据指定手机屏幕的x坐标与Y坐标,控制菜单显示在屏幕中心的位置。

    相关声明:

      若“Android 仿微信右上角弹出菜单”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。