+-

我想创建一个缩放的位图,但我似乎得到了一个不成比例的图像.它看起来像一个正方形,而我想成为矩形.
我的代码:
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创建缩放位图 - 乐贴网