需要帮助或添加其他有关浮动窗口的代码

问题描述

我希望你一切都好。 在Sketchware im中,使用在create上的代码获取浮动窗口,这一切都是成功的,但是我想要一种最小化并单击或拖动浮动窗口(例如FB Messenger ICOn)的方法。 这是我在OnCreate中的代码

私有WindowManager windowManager;

    private WindowManager.LayoutParams layoutParams;
    
    private View displayView;
    
    private void showFloatingWindow() {
        
        LayoutInflater layoutInflater = LayoutInflater.from(this);
        
        displayView = layoutInflater.inflate(R.layout.main,null); displayView.setonTouchListener(new FloatingOnTouchListener());
        
        final Button btn = displayView.findViewById(R.id.button1);
        final Button btn2 = displayView.findViewById(R.id.button2);
        windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
        layoutParams = new WindowManager.LayoutParams();
        
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
            layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; 
        } else { 
            layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE; 
        }
        
        layoutParams.format = PixelFormat.RGBA_8888; layoutParams.gravity = Gravity.LEFT | Gravity.TOP; layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; layoutParams.width = 500; 
        layoutParams.height = 400;
         layoutParams.x = 0;
        layoutParams.y = 0;
                               
                btn2.setonClickListener(new View.OnClickListener() {
                       
                       public void onClick(View v) {
                            
                            showMessage("2");
                            
                           }
                       
                      });
                btn.setonClickListener(new View.OnClickListener() {
                       
                       public void onClick(View v) {
                            
                            showMessage("1");
                            
                           }
                       
                      });
                
                windowManager.addView(displayView,layoutParams);
            }
            
            private class FloatingOnTouchListener implements View.OnTouchListener { 
                private int x;
                private int y;
                
                @Override public boolean onTouch(View view,MotionEvent event) {
                    
                    switch (event.getAction()) { 
                        case MotionEvent.ACTION_DOWN: 
                        x = (int) event.getRawX(); 
                        y = (int) event.getRawY(); 
                        break;
                        
                        case MotionEvent.ACTION_MOVE: int NowX = (int) event.getRawX(); 
                        int NowY = (int) event.getRawY(); 
                        int movedX = NowX - x; 
                        int movedY = NowY - y; 
                        x = NowX; y = NowY; 
                        layoutParams.x = layoutParams.x + movedX; 
                        layoutParams.y = layoutParams.y + movedY; windowManager.updateViewLayout(view,layoutParams); 
                        break; 
                        default: 
                        break; 
                    }
                     return true;

只需要帮助,在此先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)