【问题标题】:How do I reset ImageView memory in Android?如何在 Android 中重置 ImageView 内存?
【发布时间】:2018-07-26 04:05:51
【问题描述】:

我的应用是问答式的。所以我将特定字符串加载到一个活动中,然后该活动显示它。我的问题是,当我更改为新问题时,例如 q1 -> q2,它将加载另一个字符串和图片。但是这张图片在我将其更改为 s2 -> s3 后会留在内存中,从而导致内存不足。如何重置 ImageView 使其不会留在内存中? 我对安卓很陌生。

代码大致是这样的。

    public void getdata(){
        imageView.setImageResource(0);
        switch (data){
            case 1;
            row1.setText(qt1r1);
            row2.setText(qt1r2);
            imageView.setImageResource(R.drawable.q1);
            break;
            case 2;
            row1.setText(qt2r1);
            row2.setText(qt2r2);
            imageView.setImageResource(R.drawable.q2);
            break;
        }

    }

【问题讨论】:

  • 你是如何在 ImageView 中设置图片的?
  • 请分享代码,从目前的信息看不清楚你在做什么导致内存不足错误
  • 以及设置不同图像的条件!
  • 你可以尝试使用像Picasso和Glide这样的图像解析库,它会自动处理资源和内存管理。他们还可以选择加载图像的较小缩略图版本。或者,您可以尝试减小图像文件的大小。

标签: android image memory-leaks bitmap out-of-memory


【解决方案1】:

这取决于你的资源分辨率。这是一个很好的库。你可以像这样解决你的问题

Glide.with(fragment)
.load(R.drawable.resource_id)
.into(imageView);

对于资产,可以构造一个资产uri:

Glide.with(fragment)
.load(Uri.parse("file:///android_asset/assetName"))
.into(imageView);

Here is a library

【讨论】:

  • 我不知道为什么你第一次回答不属于问题 bcz 的问题,你第一次将答案集 0 放在图像视图上,该图像视图现在已经显示有问题,现在你显示滑行与资产(显示)但他正在使用资源文件 。所以没有答案..
  • 在我的情况下,set 0 工作正常,但我希望问题是图像资源,而 Glide 是处理大图像的最佳库
  • 谢谢,我不知道有这样的库。
猜你喜欢
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2013-10-05
  • 1970-01-01
  • 2016-12-03
  • 2014-09-13
相关资源
最近更新 更多