+-
java – 在Android中使用createScaledBitmap创建缩放位图
我想创建一个缩放的位图,但我似乎得到了一个不成比例的图像.它看起来像一个正方形,而我想成为矩形.

我的代码:

Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, 960, 960, false);

我希望图像的最大值为960.我该怎么做?将width设置为null不会编译.它可能很简单,但我无法绕过它.谢谢

最佳答案
如果你已经在内存中有原始位图,则不需要执行inJustDecodeBounds,inSampleSize等的整个过程.您只需要确定要使用的比率并相应地进行缩放.

final int maxSize = 960;
int outWidth;
int outHeight;
int inWidth = myBitmap.getWidth();
int inHeight = myBitmap.getHeight();
if(inWidth > inHeight){
    outWidth = maxSize;
    outHeight = (inHeight * maxSize) / inWidth; 
} else {
    outHeight = maxSize;
    outWidth = (inWidth * maxSize) / inHeight; 
}

Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, outWidth, outHeight, false);

如果此图像的唯一用途是缩放版本,则最好使用Tobiel的答案,以最大限度地减少内存使用量.

点击查看更多相关文章

转载注明原文:java – 在Android中使用createScaledBitmap创建缩放位图 - 乐贴网