android Matrix and ImageView
程序员文章站
2022-07-14 16:07:52
...
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;
上一篇: Clojure 的量子特性
下一篇: 悲催的关于大众辉腾的笑话