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;
分享到:
相关推荐
总结起来,Android中使用`Matrix`实现图片的放大、缩小和拖动功能,主要步骤包括设置`ImageView`的`scaleType`为`matrix`,创建并管理`Matrix`对象,以及正确处理触摸事件,根据触摸事件的不同类型来决定执行拖动或...
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-show-image-and-path.7z"压缩包可能包含了一个示例项目或代码片段,用于演示如何在Android应用中实现这些功能。让我们深入探讨一下Android中显示图像和获取图像路径的相关知识点。 1. **显示图像** -...
通过以上分析和实践,我们可以看出,实现Android图片镜像倒影特效并不复杂,主要涉及到了`Bitmap`、`Matrix`、`Canvas`、`Paint`等核心绘图组件的应用。此外,还可以通过自定义视图的方式增强视觉效果,提高用户的...
在"Android基础知识(9)—Android绘图基础"的学习中,你还会接触到Matrix类,它允许你对图形进行旋转、缩放、平移等变换。同时,Path类用于构建复杂的路径,可以组合多个几何形状。此外,Shader类可用于创建更高级的...
1. Matrix变换:在Android中,通常使用`android.graphics.Matrix`类来处理视图的平移和缩放。Matrix类提供了多种方法,如`postTranslate()`用于平移,`postScale()`用于缩放,通过对Matrix对象的操作来改变视图的...
imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setImageMatrix(matrix); return true; } }); @Override public boolean onTouchEvent(MotionEvent event) { detector.onTouchEvent(event); ...
在Android中,图文混排通常通过使用`TextView`和`ImageView`的组合来实现。然而,当需要更复杂的布局时,例如图片与文字的自由排列,可以使用`WebView`或自定义`ViewGroup`。此项目可能使用了`WebView`加载HTML内容...
import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import android.graphics....
PhotoView aims to help produce an easily usable implementation of a zooming Android ImageView. Branch Develop: Build Status Branch Master: Build Status PhotoView Features Out of the box zooming, ...
android应用里使用相机图片时必须要考虑的一个问题就是图片朝向,只有判断对朝向才能调整图片从而更好的展现。本文将介绍一种通过ExifInterface判断图片朝向的方法! 上代码: /** * * 利用给定路径下的图片...
android绘制圆形图片的两种方式 看下效果先 下面有完整的示例代码 使用BitmapShader(着色器) 我们在绘制view 的时候 就是小学上美术课 用水彩笔在本子上画画 使用着色器绘制圆形图片最简单的理解方式 就是把...
4. **及时释放Bitmap**:使用完Bitmap后,记得调用`recycle()`方法释放资源,但注意不要在ImageView或其他地方还在使用Bitmap时回收。 5. **避免不必要的高质量图像**:根据应用需求,使用适合屏幕尺寸和设备密度的...
KenBurnsView是一个在Android平台上实现的特殊视图,它为用户提供了一种“Ken Burns”效果,也称为“cinematic panning and zooming”,这种效果常用于电视和多媒体展示,可以给静态图像带来动态和深度感,使得用户...