如何在postscale()之后获取ImageView中图片的缩放宽度/高度

3
我有一段代码,允许用户在屏幕上对某些图像进行双指捏合缩放。我使用AbsoluteLayout和ImageView来显示这些图像。为了实现这一点,我使这些ImageView具有其父级的全宽度/高度。然后当用户触摸一个点时,我会检测该点下面的哪个图像,并使用bringChildToFront()方法,以便其能够在onTouch()事件中获得焦点。当用户进行双指捏合缩放时,我使用Matrix和它的postScale()方法,使用以下代码:android imageView: setting drag and pinch zoom parameters
现在,让我困惑的是,如何在postScale()之后获取图像的当前宽度/高度?我已经尝试过:
1. getDrawable().getIntrinsicHeight() <-- 没用。它总是返回原始的宽度/高度
2. getDrawable().getBounds().width() <-- 与上述情况相同
3. getDrawingCache().getWidth() <-- 这只返回ImageView的宽度/高度
那么,有什么适当的方法来实现这一点呢?谢谢。
-ri
1个回答

0

Ri-

这是我使用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);


            }

希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接