android - 如何将 decodeSampledBitmapFromResource 与下载的图片一起使用?

标签 android bitmap out-of-memory

我从 Internet 下载照片,然后将其保存在位图变量中。

我正在尝试修复它导致的崩溃(这是一个内存问题)。

这就是他们在这里建议的代码:Loading Bitmaps

但他们只谈论来自资源的图像,所以我卡住了..

public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
        int reqWidth, int reqHeight) {

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource(res, resId, options);
}

我能以某种方式转换它以使其与下载的位图一起使用吗?

最佳答案

BitmapFactory.decodeStream(inputStream, null, options); 您可以使用它从 inputStream 解码。但是,它只能运行一次,因为 inputStream 只能使用一次。因此,您无法通过两次调用 decodeStream 来真正计算出 inSampleSize。如果您知道要下载的图像的大小,请尝试对 inSampleSize 进行硬编码。

    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inSampleSize = 2; \\ hard code it to whatever is reasonable
    return BitmapFactory.decodeStream(inputStream, null, options);

关于android - 如何将 decodeSampledBitmapFromResource 与下载的图片一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070555/

相关文章:

android - 如何从 Uri 调整图像大小?

android - 我如何将 android 位图别名为另一个尺寸的可绘制对象(drawable-large-mdpi 别名为 drawable-hdpi)

android - 自定义 View 位图的大小不正确

.net - 集合内存不足

android - 适用于 iOS/Android 的嵌入式浏览器应用程序

Android studio 3.1.4 工具栏卡在角落里

Android 应用教程 Activity

Android 位图处理 - 没有泄漏但仍然 OOM?

将 MS SQL 2005 DB 与 Tomcat 6 一起使用时出现 Java 内存不足错误

android - Android应用程序内存不足错误