gpt4 book ai didi

android - 为什么不能将多个图像加载到 ListView 中?

转载 作者:行者123 更新时间:2023-11-30 04:13:15 26 4
gpt4 key购买 nike

我正在从网站下载图片并附加到 ListView 中。

URL aURL;
try {
aURL = new URL(//"http://www.orientaldaily.com.my/"+
imagepath[i]);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();

imageview = (ImageView) findViewById(R.id.image_alllatestnewstitle);
imageview.setVisibility(View.VISIBLE);
imageview.setScaleType(ScaleType.CENTER_CROP);
imageview.setImageBitmap(bm);
} catch (IOException e) {
Log.e("DEBUGTAG", "Remote Image Exception", e);
}

当我只下载 1 张图片时,没有问题,但是当我下载多张或超过 5 张图片并加载到 ListView 时,就会出现问题。

问题是

bitmap size exceeds VM budget

如何避免这个问题?

注意:这不是重复任何问题!

谢谢。

最佳答案

加载很多图像导致应用程序内存不足并强制关闭。我认为这就是您的应用程序正在发生的事情。内存问题是开发应用程序时 android 的一个复杂问题。这可以通过手动清除未使用的位图并使用垃圾收集器。

  • 尝试使用 System.gc();

  • 尝试使用

  • 回收位图
  • Bitmap.recycle();

  • 将所有未使用的位图设为空。

  • 释放所有未使用的内存。

这一切都会对你有很大帮助,也会通过这个link .使用内存分析器,它会帮助您找出已释放的内存>试试这个 link

public void deAllocateAllMemory() 
{
try
{


mGallery.imgLoader1.disposeImages();
unbindDrawables(findViewById(R.id.magazineGrid));
mGallery=null;

back.getBackground().setCallback(null);
back.setOnClickListener(null);
store.getBackground().setCallback(null);
store.setOnClickListener(null);
quickAction.setOnActionItemClickListener(null);
settings.getBackground().setCallback(null);
settings.setOnClickListener(null);
}
catch (Exception e)
{
}

}

private void unbindDrawables(View view) {
if (view.getBackground() != null) {
try {
view.getBackground().setCallback(null);
((BitmapDrawable) view.getBackground()).getBitmap().recycle();
view.destroyDrawingCache();
view.notifyAll();
} catch (Exception e) {
}

}

这段代码可能对您有一点帮助。

关于android - 为什么不能将多个图像加载到 ListView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10479913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com