0

放大缩小后如何获取ImageView的高度和宽度。

我正在使用以下代码:

mRectSrc.left = (int)(panX * bitmapWidth - viewWidth / (zoomX * 2));
            mRectSrc.top = (int)(panY * bitmapHeight - viewHeight / (zoomY * 2));
            mRectSrc.right = (int)(mRectSrc.left + viewWidth / zoomX);
            mRectSrc.bottom = (int)(mRectSrc.top + viewHeight / zoomY);
            mRectDst.left = getLeft();
            mRectDst.top = getTop();
            mRectDst.right = getRight();
            mRectDst.bottom = getBottom();

            // Adjust source rectangle so that it fits within the source image.
            if (mRectSrc.left < 0) {
                mRectDst.left += -mRectSrc.left * zoomX;
                mRectSrc.left = 0;
            }
            if (mRectSrc.right > bitmapWidth) {
                mRectDst.right -= (mRectSrc.right - bitmapWidth) * zoomX;
                mRectSrc.right = bitmapWidth;
            }
            if (mRectSrc.top < 0) {
                mRectDst.top += -mRectSrc.top * zoomY;
                mRectSrc.top = 0;
            }
            if (mRectSrc.bottom > bitmapHeight) {
                mRectDst.bottom -= (mRectSrc.bottom - bitmapHeight) * zoomY;
                mRectSrc.bottom = bitmapHeight;
            }

            canvas.drawBitmap(mBitmap, mRectSrc, mRectDst, mPaint);

所以使用这个代码我得到了图像的缩放效果。放大和缩小后如何获取位图高度和宽度。

4

1 回答 1

1

我尝试寻找一些内置函数来获取附加到图像视图的位图大小,但找不到。所以,我做了一个解决方法。只需将位图的初始高度和宽度存储在某个变量中,然后使用比例因子更新这些变量值。
这是您如何获取附加图像的位图(将始终返回初始大小):

Drawable d = imageView.getDrawable();
    Bitmap bmp = ((BitmapDrawable)d).getBitmap();
    float w = bmp.getWidth();
    float h = bmp.getHeight();

更新值的方法:

public void updateSize(float scaleFactor)
{
     w *= scaleFactor;
     h *= scaleFactor;
}

您可以从向图像添加缩放的位置调用此方法。

于 2012-09-14T07:57:08.017 回答