【发布时间】:2014-06-11 16:37:42
【问题描述】:
我正在尝试将位图的大小调整为自定义 X 和 Y,并且我使用的代码有时会运行到 OutOfMemory 异常中。我环顾四周,找到了一些如何使用 InputStream 调整位图大小的解决方案,但我找不到任何方法如何将其调整为自定义 X 和 Y 尺寸。有人可以给我一个建议吗?
这是我的代码:
try {
Point scr = Sys.screenSize(getActivity());
// MY CUSTOM X and Y
int newWidth = (int) Sys.convertDpToPixel(linheight, getActivity())
* lines;
int newHeight = scr.x;
Bitmap bitmap = BitmapFactory.decodeResource(getActivity()
.getResources(), R.drawable.field);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// "RECREATE" THE NEW BITMAP
bm = Bitmap
.createBitmap(bitmap, 0, 0, width, height, matrix, false);
bitmap.recycle();
matrix = null;
iv.setImageBitmap(bm);
} catch (OutOfMemoryError e) {
e.printStackTrace();
}
【问题讨论】:
标签: android image bitmap inputstream