android Matrix and ImageView


imageView.getImageMatrix()
float[] values = new float[9];
matrix.getValues(values);

float mtrans_x = values[Matrix.MTRANS_X];//左上顶点X坐标
float mtrans_y = values[Matrix.MTRANS_Y];//左上顶点Y坐标
float mscale_x = values[Matrix.MSCALE_X] ;//宽度缩放倍数
float mscale_y = values[Matrix.MSCALE_Y] ;//高度缩放位数

Drawable drawable = relativeImageView.getDrawable();
Rect imageBounds = drawable.getBounds();

//original height and width of the bitmap
int intrinsicHeight = drawable.getIntrinsicHeight();
int intrinsicWidth = drawable.getIntrinsicWidth();

Log.i("@@@", "intrins:" + intrinsicHeight + " " + intrinsicWidth);

//height and width of the visible (scaled) image
int scaledHeight = imageBounds.height();
int scaledWidth = imageBounds.width();

Log.i("@@@", "bounds:" + scaledHeight + " " + scaledWidth);
//Find the ratio of the original image to the scaled image
//Should normally be equal unless a disproportionate scaling
//(e.g. fitXY) is used.
float heightRatio = intrinsicHeight / scaledHeight;
float widthRatio = intrinsicWidth / scaledWidth;

Log.i("@@@", "ratio:" + heightRatio + " " + widthRatio);
//do whatever magic to get your touch point
//MotionEvent event;

//get the distance from the left and top of the image bounds
float scaledImageOffsetX = event.getX() - imageBounds.left;
float scaledImageOffsetY = event.getY() - imageBounds.top;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值