红红红红叶 2017-04-15 03:37 采纳率: 0%
浏览 679

android 点击图片移动缩放图片

public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();

            switch (event.getAction()){
                case MotionEvent.ACTION_DOWN:
                    move_x_old = x;
                    move_y_old = y;
                    break;
                case MotionEvent.ACTION_MOVE:

                        int moveX = x - move_x_old;
                        int moveY = y - move_y_old;

                        int i = 0;
                        if (moveX < 0 && moveY > 0) {
                            i = moveX;
                        } else if (moveX > 0 && moveY < 0) {
                            i = y;
                        } else if (moveX < 0 && moveY < 0) {
                            i = Math.abs(moveX) > Math.abs(moveY) ? moveX : moveY;
                        } else {
                            i = Math.max(moveX, moveY);
                        }

// if(moveX // i = Math.abs(x) > Math.abs(y) ? moveX : moveY;
// }else if(moveX0){
// i=
// }

                        ViewGroup.LayoutParams layoutParams = getLayoutParams();
                        layoutParams.width += i ;
                        layoutParams.height += i ;
                    Log.e("onTouch", "onTouch:"+i+" "+x+" "+y+" "+move_x_old+" "+move_y_old+" "+moveX+" "+moveY);
                        if (layoutParams.width < metric.widthPixels / (float) 10
                        /*|| layoutParams.height < metric.heightPixels / (float)10*/) {
                            layoutParams.width = (int) (metric.widthPixels / (float) 10);
                            layoutParams.height = layoutParams.width + (ItemHeight - ItemWidth);
                        } else if (layoutParams.width > metric.widthPixels * ((float) 3 / 4)
                        /*|| layoutParams.height > metric.heightPixels * ((float)3 / 4)*/) {
                            layoutParams.width = (int) (metric.widthPixels * ((float) 3 / 4));
                            layoutParams.height = layoutParams.width + (ItemHeight - ItemWidth);
                        }
                        setLayoutParams(layoutParams);

// move_x_old = x;
// move_y_old = y;
break;
case MotionEvent.ACTION_UP:
move_x_old = 0;
move_y_old = 0;

                    buttonBean.setX((float) getLeft() / (float) metric.widthPixels);
                    buttonBean.setY((float) getTop() / (float) metric.heightPixels);
                    buttonBean.setWidth(getWidth());
                    buttonBean.setHeight(getHeight());

                    break;
            }


            return true;
        }
  • 写回答

2条回答 默认 最新

  • 红红红红叶 2017-04-15 03:41
    关注

    图片可以缩放,但是会抖动,有什么解决办法吗。输出日志显示,位移谝量是负的

    评论

报告相同问题?

悬赏问题

  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)