繁体   English   中英

在Android中放大后如何获取视图的xy位置

[英]How to get the x y position of a view after zoom-in in android

我是android的初学者,正在放大页面中寻找视图的xy位置,但是我尝试了很多我无法获得的位置。我在下面的代码中使用了此代码,但是在缩放前后我得到了相同的位置。 请任何人张贴代码,以便在缩放后找到xy位置。

 private int fieldImgXY[] = new int[2];
 v.getLocationOnScreen(fieldImgXY);
 Log.v("Log",fieldImgXY[0]+" "+fieldImgXY[1]);

我的完整代码:

     zoom = (ZoomView) findViewById(R.id.maincontainerScroller);    

     imageView = new ImageView(this);
     imageView.setImageResource(R.drawable.ic_launcher);
     imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
     zoom.addView(imageView);    

     imageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            v.getLocationOnScreen(fieldImgXY);
            Log.v("Log",fieldImgXY[0]+" "+fieldImgXY[1]);

        }
    });

为了从图像中获取绝对坐标,我使用这种方法:

void calculeAbsoluteCoorde(MotionEvent e){
    float []m = new float[9];
    matrix.getValues(m);
    float transX = m[Matrix.MTRANS_X] * -1;
    float transY = m[Matrix.MTRANS_Y] * -1;
    float scaleX = m[Matrix.MSCALE_X];
    float scaleY = m[Matrix.MSCALE_Y];
    lastTouchX = (int) ((e.getX() + transX) / scaleX);
    lastTouchY = (int) ((e.getY() + transY) / scaleY);
    lastTouchX = Math.abs(lastTouchX);
    lastTouchY = Math.abs(lastTouchY);
}

我认为您使用矩阵进行缩放,希望对您有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM