如何使用AndroidBitmapFactory.Options.inBitmap?
How to use Android BitmapFactory.Options.inBitmap?
此方法解码位图而不产生 OutOfMemory
异常:
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight)
{
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inInputShareable = true;
options.inPurgeable = true;
BitmapFactory.decodeResource(res, resId, options);
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
但字段 inInputShareable
和 inPurgeable
在 sdk=21 中已弃用。
如何将上述方法更改为使用BitmapFactory.Options.inBitmap
?
它 运行 在 pre-21 设备上是否正确?
How do I change the above method to use BitmapFactory.Options.inBitmap?
将 options.inBitmap
设置为现有的 Bitmap
对象,您希望将其重新用作解码的目标。
Will it run correctly on pre-21 devices?
这将完全取决于您作为 Bitmap
提供的内容以及您如何定义 "correctly":
在 API 级别 19+ 上,Bitmap
需要与您尝试解码的 Bitmap
大小相同或更大。否则,Bitmap
将被忽略,您将得到一个新的 Bitmap
.
在旧设备上,Bitmap
需要与您尝试解码的 Bitmap
大小(分辨率)相同。否则,Bitmap
将被忽略,您将得到一个新的 Bitmap
.
此方法解码位图而不产生 OutOfMemory
异常:
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight)
{
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inInputShareable = true;
options.inPurgeable = true;
BitmapFactory.decodeResource(res, resId, options);
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
但字段 inInputShareable
和 inPurgeable
在 sdk=21 中已弃用。
如何将上述方法更改为使用BitmapFactory.Options.inBitmap
?
它 运行 在 pre-21 设备上是否正确?
How do I change the above method to use BitmapFactory.Options.inBitmap?
将 options.inBitmap
设置为现有的 Bitmap
对象,您希望将其重新用作解码的目标。
Will it run correctly on pre-21 devices?
这将完全取决于您作为 Bitmap
提供的内容以及您如何定义 "correctly":
在 API 级别 19+ 上,
Bitmap
需要与您尝试解码的Bitmap
大小相同或更大。否则,Bitmap
将被忽略,您将得到一个新的Bitmap
.在旧设备上,
Bitmap
需要与您尝试解码的Bitmap
大小(分辨率)相同。否则,Bitmap
将被忽略,您将得到一个新的Bitmap
.