在android中获取缩放图像位图的高度和宽度

在android中获取缩放图像位图的高度和宽度,android,android-imageview,Android,Android Imageview,如何在放大或缩小后获得ImageView的高度和宽度 我正在使用以下代码: mRectSrc.left = (int)(panX * bitmapWidth - viewWidth / (zoomX * 2)); mRectSrc.top = (int)(panY * bitmapHeight - viewHeight / (zoomY * 2)); mRectSrc.right = (int)(mRectSrc.left + viewWidth

如何在放大或缩小后获得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);
mRectSrc.left=(int)(panX*bitmapWidth-viewWidth/(zoomX*2));
mRectSrc.top=(int)(公司*位图高度-视图高度/(缩放*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();
//调整源矩形,使其适合源图像。
if(mRectSrc.left<0){
mRectDst.left+=-mRectSrc.left*zoomX;
mRectSrc.left=0;
}
if(mRectSrc.right>bitmapWidth){
mRectDst.right-=(mRectSrc.right-位图宽度)*zoomX;
mRectSrc.right=位图宽度;
}
如果(mRectSrc.top<0){
mRectDst.top+=-mRectSrc.top*缩放;
mRectSrc.top=0;
}
if(mRectSrc.bottom>位图高度){
mRectDst.bottom-=(mRectSrc.bottom-位图高度)*缩放;
mRectSrc.bottom=位图高度;
}
drawBitmap(mBitmap、mRectSrc、mRectDst、mPaint);

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

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

更新值的方法:

public void updateSize(float scaleFactor)
{
     w *= scaleFactor;
     h *= scaleFactor;
}
可以从向图像添加缩放的位置调用此方法

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