android - 内存不足加载 imageViews

标签 android imageview

我有一个 ScrollView ,它具有通过 AsyncTask 加载的图像的小缩略图,并将图像 URL 抛出到 imageView。

它们是动态添加的,然后在顶部是一个主 imageView,其中包含您单击的缩略图的图像。

在缩略图中有大约 10 张图片之前,一切都运行良好...

我正在通过与缩略图相同的方式加载 mainImage url,因此当他们单击缩略图中的图像时,它会将其加载到顶部。

我在方法本身中回收位图,但它似乎内存不足并且在加载超过 10 张图像时崩溃(缩略图加载正常,但当我单击加载主图像时崩溃)

感谢任何帮助

这是我用来加载图像的代码(缩略图 + 主图):

    private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
      ImageView bmImage;

      public DownloadImageTask(ImageView bmImage) {
          this.bmImage = bmImage;
      }

  protected Bitmap doInBackground(String... urls) {
      String urldisplay = urls[0];
      Bitmap mIcon11 = null;
      try {
        InputStream in = new java.net.URL(urldisplay).openStream();
        mIcon11 = BitmapFactory.decodeStream(in);
      } catch (Exception e) {
          Log.e("Error", e.getMessage());
          e.printStackTrace();
      }
      return mIcon11;
  }

  protected void onPostExecute(Bitmap result) {
      bmImage.setImageBitmap(result);
  }
    }

最佳答案

只需在你的图像上实现它......它会将你的图像减少 4 倍

public static Bitmap getImage(byte[] image) {
        BitmapFactory.Options config = new BitmapFactory.Options();
        config.inPreferredConfig = Bitmap.Config.RGB_565;
        config.inSampleSize = 4;
        return BitmapFactory.decodeByteArray(image, 0, image.length,config);

    }

关于android - 内存不足加载 imageViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646965/

相关文章:

java - 从 ip 地址获取地理位置

java - 从 Firebase 导入 Java 类

android - 如何在android中将drawable设置为ListView

android - 如何在 ImageView 的同一区域上填充不同的颜色(在 ImageView 的同一区域上填充另一种颜色)?

Android 选项菜单总是关闭

java - 如何删除电话号码周围的括号

android - 自动化 Android 应用程序按钮点击的方法

java - 在 Android 问题中将 Base64 字符串转换为位图

android - 在 ImageView 上绘制文本

android - 在 GridView 中混合 ImageView 和 VideoView