我有一个代码,允许用户在屏幕上缩放一些图像。 我使用AbsoluteLayout和imageviews来显示图像。 为了实现这一点,我将这些imageview的宽度/高度设置为其父级。 然后,当用户触摸一个点时,我将检测哪个图像位于该点区域下,并使用bringChildToFront()使其具有onTouch()事件的焦点。 当用户进行捏缩放时,我使用矩阵及其postScale()方法,使用此代码 android imageView: setting drag and pinch zoom parameters
现在,令我困惑的是,如何在postScale()之后获取图像的当前宽度/高度? 我试过了:
getDrawable().getIntrinsicHeight()
< - 没有用。它总是回归
原始宽度/高度getDrawable().getBounds().width()
< - 与上述相同getDrawingCache().getWidth()
< -
这只是返回宽度/高度
imageview 那么,实现这个目标的适当方法是什么? 感谢。
-ri
答案 0 :(得分:0)
日 -
这是我使用Pinch缩放/拖动平移的同一问题的解决方案。您可以根据自己的需要进行调整。我把它放在MotionEvent.Action_Move
的缩放部分内 else if (mode ==ZOOM){
float newDist = spacing(event);
if(newDist > 10f){
int height;
int width;
matrix.set(savedMatrix);
float scale = newDist/oldDist;
matrix.postScale(scale,scale,mid.x,mid.y);
setImageMatrix(matrix);
height = (int)(ivViewPoint.y * scale);
width = (int)(ivViewPoint.x * scale);
ivViewPoint = new Point(width,height);
}
希望有所帮助。