如何使用 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);
}

但是字段inInputShareableinPurgeable在 sdk=21 中已弃用。

如何更改上述方法以使用BitmapFactory.Options.inBitmap

它会在 21 岁之前的设备上正确运行吗?

共享软件

如何更改上述方法以使用 BitmapFactory.Options.inBitmap?

设置options.inBitmapBitmap您想要重用作为解码目标的现有对象。

它会在 21 岁之前的设备上正确运行吗?

这将完全取决于您提供的内容Bitmap以及您如何“正确”定义:

  • 在 API 级别 19+ 上,Bitmap需要与Bitmap您尝试解码的大小相同或更大否则,Bitmap将被忽略,您将获得一个新的Bitmap.

  • 在较旧的设备上,Bitmap需要与Bitmap您尝试解码的大小(分辨率)相同否则,Bitmap将被忽略,您将获得一个新的Bitmap.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

BitmapFactory.Options.inBitmap的一些困惑

Android 5.0不支持BitmapFactory.Options inPurgeable

为什么要使用 BitmapFactory.Options.inTempStorage?

不推荐使用BitmapFactory.Options“ inPurgeable”方法

无法识别BitmapFactory的options方法

Android BitmapFactory与BufferedInputStream

如果多次使用,则Android BitmapFactory.decodeResource内存不足

Android:BitmapFactory解码速度缓慢

如何模拟BitmapFactory:方法decodeFile

使用BitmapFactory的原始大小位图

使用GZIP文件上的BitmapFactory.DecodeStreamAsync将URL流传输到Android.Graphics.Bitmap

使用 BitmapFactory 在画布上 onDraw 时出错

相机拍照后如何使用BitmapFactory停止图像旋转?

为什么Android BitmapFactory.decodeFile()需要4倍的内存?

当BitmapFactory.nativeDecodeStream()耗尽android应用程序的内存时

Android BitmapFactory.decodeResource占用过多内存

来自Assets的BitmapFactory.decodeStream在Android 7上返回null

BitmapFactory.decodeFile() 返回 null xamarin.android

Android BitmapFactory.decodeFile(path)始终返回null

Android Studio Kotlin:BitmapFactory.decodeStream()返回null

Android中的BitmapFactory.decodeFile和ImageView奇怪的东西

BitmapFactory.decodeResource在Android 2.2上为null

在android.graphics.BitmapFactory.nativeDecodeAsset(本地方法)

如何使用BitmapFactory.decodeResource从Res / draw中检索多个图像

ImageDecoder与BitmapFactory

BitmapFactory.decodeResource在Android 2.2中返回可变的位图,在Android 1.6中返回不可变的位图

Google Map Options Android

BitmapFactory:无法解码流:java.io.FileNotFoundException:打开失败:EACCES(拒绝)对Android Q的

Android BitmapFactory.decodeByteArray获取比iOS UIImage交换的照片宽度/高度