在视图上移动,旋转和放大\ out

时间:2018-03-30 22:44:32

标签: android android-studio gesture

我是Android开发的新手,我需要开发一些带有一些规范的视图

  1. 触摸
  2. 按捏缩放(放大\出)
  3. 使用两种方法旋转
  4. 我已经通过使用这些步骤here开发了旋转,但是如果一根手指突然被移除,则会出现跳跃视图等问题。

    并且对于移动使用此代码它运作良好,但认为它是突然移动的问题。

     public static View.OnTouchListener getTouchListener(){
        View.OnTouchListener onTouchListener = new View.OnTouchListener() {
            int prevX, prevY;
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                final ConstraintLayout.LayoutParams par = (ConstraintLayout.LayoutParams) v.getLayoutParams();
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN: {
                        v.bringToFront();
                        prevX = (int) event.getRawX();
                        prevY = (int) event.getRawY();
                        par.bottomMargin = -8 * v.getHeight();
                        par.rightMargin = -8 * v.getWidth();
                        v.setLayoutParams(par);
                        return true;
                    }
                    case MotionEvent.ACTION_MOVE: {
                        par.topMargin += (int) event.getRawY() - prevY;
                        prevY = (int) event.getRawY();
                        par.leftMargin += (int) event.getRawX() - prevX;
                        prevX = (int) event.getRawX();
                        v.setLayoutParams(par);
                        return true;
                    }
                }
                return false;
            }
        };
        return onTouchListener;
    }
    

    我需要有人帮我把这三个功能放在一起,没有任何问题 提示:如果有图书馆,欢迎光临。

2 个答案:

答案 0 :(得分:0)

经过长时间搜索如何实现这样的东西,我终于在GitHub上找到了一个解决我的问题的存储库 你可以找到做here

的课程

以及使用这些类的方法是:

        yourView.setOnTouchListener(new MultiTouchListener());

通过这种方式你可以缩放,放大/缩小(通过捏合)并通过捏合旋转视图。

答案 1 :(得分:0)

搜索内容的完美示例:see here(example)

快乐的编码!