在android中获取缩放图像位图的高度和宽度
如何在放大或缩小后获得ImageView的高度和宽度 我正在使用以下代码:在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
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;
}