imageView.getImageMatrix()
float[] values = new float[9];
matrix.getValues(values);
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;
分享到:
相关推荐
ImageViewTouch is an android ImageView widget with zoom and pan capabilities. This is an implementation of the ImageView widget used in the Gallery app of the Android opensource project. Checkout the ...
总结起来,Android中使用`Matrix`实现图片的放大、缩小和拖动功能,主要步骤包括设置`ImageView`的`scaleType`为`matrix`,创建并管理`Matrix`对象,以及正确处理触摸事件,根据触摸事件的不同类型来决定执行拖动或...
// These matrices will be used to move and zoom image Matrix matrix = new Matrix(); Matrix savedMatrix = new Matrix(); PointF start = new PointF(); PointF mid = new PointF(); float oldDist; ...
imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setImageMatrix(matrix); return true; } }); @Override public boolean onTouchEvent(MotionEvent event) { detector.onTouchEvent(event); ...
二、实现PanAndZoom的原理 1. Matrix变换:在Android中,通常使用`android.graphics.Matrix`类来处理视图的平移和缩放。Matrix类提供了多种方法,如`postTranslate()`用于平移,`postScale()`用于缩放,通过对...
ImageView imageView = (ImageView) child; Matrix matrix = new Matrix(); float angle = (float) (mMaxRotationAngle * (child.getLeft() - mCoveflowCenter) / (getWidth() - mCoveflowCenter)); mCamera....
这个"android-show-image-and-path.7z"压缩包可能包含了一个示例项目或代码片段,用于演示如何在Android应用中实现这些功能。让我们深入探讨一下Android中显示图像和获取图像路径的相关知识点。 1. **显示图像** -...
Allows the application to be notified when the displayed Matrix has changed. Useful for when you need to update your UI based on the current zoom/scroll position. Allows the application to be notified...
4. **及时释放Bitmap**:使用完Bitmap后,记得调用`recycle()`方法释放资源,但注意不要在ImageView或其他地方还在使用Bitmap时回收。 5. **避免不必要的高质量图像**:根据应用需求,使用适合屏幕尺寸和设备密度的...
* 利用给定路径下的图片设置ImageView * * @param imgPath 手机图片文件路径 * @param imgView 需要设置的ImageView */ public void setImg(String imgPath, ImageView imgView) { File file = new File...
1. 图文混排(Image and Text Mixing): 在Android中,图文混排通常通过使用`TextView`和`ImageView`的组合来实现。然而,当需要更复杂的布局时,例如图片与文字的自由排列,可以使用`WebView`或自定义`ViewGroup`...
KenBurnsView是一个在Android平台上实现的特殊视图,它为用户提供了一种“Ken Burns”效果,也称为“cinematic panning and zooming”,这种效果常用于电视和多媒体展示,可以给静态图像带来动态和深度感,使得用户...
android绘制圆形图片的两种方式 看下效果先 ...1. 创建一个类 继承imageView 重写onDraw() 2. 获取到bitmap图片 3. 计算图片的缩放比例 使用矩阵matrix 进行缩放 4. 创建BitmapShader着色器
3. `setStyle(Paint.Style style)`: 设置绘制风格,如FILL(填充)、STROKE(描边)或FILL_AND_STROKE(同时填充和描边)。 4. `setAlpha(int alpha)`: 设置透明度,值范围0-255,0表示完全透明,255表示完全不透明...
import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import android.graphics....