android listview 加载图片
现在正在做一个项目涉及到listview加载图片,目前已经实现滑动停止后加载可见ITem的图片但是当图片加载大约到100多张的时候程序就崩溃了我实现的原理是停止滑动加载图...
现在正在做一个项目 涉及到 listview加载图片,目前已经实现 滑动停止后加载可见ITem 的图片
但是 当图片加载大约到100多张的时候 程序就崩溃了
我实现的原理是 停止滑动 加载图片 --首先会先从sd 卡查找指定的图片 如果有 则返回 如果没有则异步下载图片 保存到SD卡上
目前看到的报错信息为(请大神帮忙看看这个怎么解决 ,现在是 只要总数据超过100条 程序立马崩溃)
01-06 20:31:12.768: E/BufferQueue(324): [ItravelProductActivity] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count01-06 20:31:12.858: E/Surface(10975): dequeueBuffer: IGraphicBufferProducer::requestBuffer failed: -214748364601-06 20:31:12.858: E/Surface(10975): dequeueBuffer failed (Unknown error 2147483646)01-06 20:31:12.858: E/ViewRootImpl(10975): Could not lock surface01-06 20:31:12.858: E/ViewRootImpl(10975): java.lang.IllegalArgumentException01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.Surface.nativeLockCanvas(Native Method)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.Surface.lockCanvas(Surface.java:253)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2723)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2697)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2535)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2151)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
我积分用完了 实在抱歉,不过这个很着急 还请知道的 朋友 帮忙解决一下 谢谢了 展开
但是 当图片加载大约到100多张的时候 程序就崩溃了
我实现的原理是 停止滑动 加载图片 --首先会先从sd 卡查找指定的图片 如果有 则返回 如果没有则异步下载图片 保存到SD卡上
目前看到的报错信息为(请大神帮忙看看这个怎么解决 ,现在是 只要总数据超过100条 程序立马崩溃)
01-06 20:31:12.768: E/BufferQueue(324): [ItravelProductActivity] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count01-06 20:31:12.858: E/Surface(10975): dequeueBuffer: IGraphicBufferProducer::requestBuffer failed: -214748364601-06 20:31:12.858: E/Surface(10975): dequeueBuffer failed (Unknown error 2147483646)01-06 20:31:12.858: E/ViewRootImpl(10975): Could not lock surface01-06 20:31:12.858: E/ViewRootImpl(10975): java.lang.IllegalArgumentException01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.Surface.nativeLockCanvas(Native Method)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.Surface.lockCanvas(Surface.java:253)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2723)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2697)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2535)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2151)01-06 20:31:12.858: E/ViewRootImpl(10975): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
我积分用完了 实在抱歉,不过这个很着急 还请知道的 朋友 帮忙解决一下 谢谢了 展开
3个回答
展开全部
我在使用GridView是也遇到过你这种情况,而且去图片的方式也与你的一样,你的网络图片获取方式是每次都要去服务器获取图片地址吗,如果是这样的话,很可能是你获取图片的速度太快,服务器崩溃,这时建议你一次请求获取全部图片地址。
还有建议你在使用图片是将所有图片存在Map中来使用,这样节省图片的获取时间,防止滑动ListView是出现卡屏现象
还有建议你在使用图片是将所有图片存在Map中来使用,这样节省图片的获取时间,防止滑动ListView是出现卡屏现象
追问
您好 谢谢您的 回答 我现在 listview 没有卡屏的现象,主要是 加载图片 总崩溃 大约加载到100多张的时候就出现问题了,而且 我最最多只启用5个线程去下载 不应该会导致 服务器的崩溃。。。。
我分析 主要是因为 图片加载太多 导致内存溢出,但不知道如何去解决,不知道您是怎么处理 的
追答
我用GridView最多的时候也有几百张图标呢,不会出现崩溃的现象啊,我每个图标的地址都是存在数组中的,取得时候同时开启很多线程。也没什么问题啊。
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询