红红红红叶 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 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题