Java 需要帮助或添加浮动窗口的tis代码吗

Java 需要帮助或添加浮动窗口的tis代码吗,java,android,sketchware,Java,Android,Sketchware,我希望你很好。 在Sketchware im中,使用CreateforGet float窗口中的代码,一切都成功了,但我想要一种最小化并重新打开float窗口的方法,例如单击或拖动FB messenger图标。 这是我在OnCreate中的代码: 专用WindowManager WindowManager private WindowManager.LayoutParams layoutParams; private View displayView;

我希望你很好。 在Sketchware im中,使用CreateforGet float窗口中的代码,一切都成功了,但我想要一种最小化并重新打开float窗口的方法,例如单击或拖动FB messenger图标。 这是我在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;
只是需要帮助,提前感谢你