如何创建此类菜单并调用 android 中的悬停操作?

how can I create this type of menu and call on Hover action in android?

enter image description here
我想创建这样的自定义菜单。谁能帮帮我???

这是我的 java 端实现。 ivPricePopupMenu 是 ImageView 对象, productlist_popup_menu 是我想在 onMouseHover 操作上显示的布局。提出一些解决方案。

ivPricePopupMenu.setOnHoverListener(new View.OnHoverListener() {
            @Override
            public boolean onHover(View v, MotionEvent event) {
                Log.d("hover", "Bring yor cursor over the button");
                if(event.getAction()==MotionEvent.ACTION_HOVER_ENTER)
                {
                    //instantiate the popup.xml layout file
                    LayoutInflater layoutInflater = (LayoutInflater) ProductListActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View customView = layoutInflater.inflate(R.layout.productlist_popup_menu,null);

                    //instantiate popup window
                   PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

                    //display the popup window
                    popupWindow.showAtLocation(linearLayout, Gravity.CENTER,0, 0);
                }
                return false;
            }
        });

可以使用 PopupWindow 小部件实现悬停菜单或工具提示类型的视图。

PopupWindow(context)

为 PopupWindow 创建所需的 XML 布局文件。使用 LayoutInflater 扩充布局并为其设置所需的数据。

根据锚视图在屏幕上的位置(即问题图像中的信息按钮视图)计算 x 和 y 坐标,以定位弹出窗口 window。

使用 showAtLocation 方法显示弹出窗口 window。

popUpWindow.showAtLocation(anchorView, gravity, x, y)

重力可以通过正确计算x和y坐标设置为Gravity.NO_GRAVITY

我得到了解决方案!!!为 popupWindow 创建单独的布局文件,然后使用 onClickListner 事件调用它 window。在按钮或图像的 onClick 事件中创建此方法。

private void initiatePopupWindow() { //实例化popup.xml布局文件 LayoutInflater layoutInflater = (LayoutInflater) ProductListActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 查看 customView = layoutInflater.inflate(R.layout.productlist_popup_menu,null);

        //instantiate popup window
        final PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        popupWindow.setFocusable(true);
        popupWindow.setTouchable(true);
        popupWindow.setBackgroundDrawable(new ColorDrawable());
        popupWindow.setOutsideTouchable(true);

        //display the popup window
        popupWindow.showAtLocation(buttonTestingLayout, Gravity.CENTER, 0, 0);

    }