Android手动回收bitmapisRecycled(),引发Canvas: trying to use a recycled bitmap处理

通过Imageview显示网络传回来的byte数据,发现内存会不断增大,最终导致内存溢出。于是手动去回收Bitmap的数据,发现会main ex (Canvas: trying to use a recycled bitmap)

网上查询下,发现重新Imageview的onDraw时,在super执行try
catch,发现解决了问题,这样不必手动bitmap.recycled(),不然视频会闪动.

查询资料:

http://blog.csdn.net/primer_programer/article/details/26697037

时间: 2024-12-22 12:03:13

Android手动回收bitmapisRecycled(),引发Canvas: trying to use a recycled bitmap处理的相关文章

【转】Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理

在做Android的开发的时候,在ListView 或是 GridView中需要加载大量的图片,为了避免加载过多的图片引起OutOfMemory错误,设置了一个图片缓存列表 Map<String, SoftReference<Bitmap>> imageCache , 并对其进行维护,在图片加载到一定数量的时候,就手动回收掉之前加载图片的bitmap,此时就引起了如下错误: java.lang.RuntimeException: Canvas: trying to use a re

Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理

在做Android的开发的时候,在ListView 或是 GridView中需要加载大量的图片,为了避免加载过多的图片引起OutOfMemory错误,设置了一个图片缓存列表 Map<String, SoftReference<Bitmap>> imageCache , 并对其进行维护,在图片加载到一定数量的时候,就手动回收掉之前加载图片的bitmap,此时就引起了如下错误: Java代码   java.lang.RuntimeException: Canvas: trying to

关于Canvas: trying to use a recycled bitmap android.graphics的疑惑

============问题描述============ 因为viewpager图片内存溢出的问题,不得不考虑手动释放内存,不过出的问题我不理解. 我的想法是创建一个Map,然后用instantiateItem中的参数arg0当作键,bitmap当作值,当destroyItem中去掉VIew的时候我捎带着把不再用到的bitmap也回收掉 //这个是存bitmap的map public HashMap<Integer, SoftReference<Bitmap>> cacheBit;

Canvas: trying to use a recycled bitmap [email&#160;protected]

近期在做和图片相关显示的出现了一个问题,整理一下思路.分享出来给大家參考一下: Exception Type:java.lang.RuntimeException java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email protected] at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1282) at android.view.GLE

Android java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email&#160;protected]

近期遇到了如标题这种错误,再次记录解决方法.本文參考帖子: http://bbs.csdn.net/topics/390196217 出现此bug的原因是在内存回收上.里面用Bitamp的代码为: top=(ImageView)view.findViewById(R.id.top); bitmap=ImgBitmap.comeFromRes(getResources(), R.drawable. top); top.setImageBitmap(bitmap); bottom=(ImageVie

java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email&#160;protected]

最近遇到了如标题这样的错误,再次记录解决方法.本文参考帖子: http://bbs.csdn.net/topics/390196217 出现此bug的原因是在内存回收上,里面用Bitamp的代码为: top=(ImageView)view.findViewById(R.id.top); bitmap=ImgBitmap.comeFromRes(getResources(), R.drawable. top); top.setImageBitmap(bitmap); bottom=(ImageVi

【转】Android 内存回收机制(默认回收与kernel回收)

Android APP 的运行环境 Android 是一款基于 Linux 内核,面向移动终端的操作系统.为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使得其进程调度与资源管理与其他平台的 Linux 有明显的区别.主要包含下面几个层次: Application Framework Application Framework 将整个操作系统分隔成两个部分.对应用开发者而言,所有 APP 都是运行在 Application Framework 之上,而并不需要关心系统底层的

Android访问服务器(TOMCAT)乱码引发的问题(转载)

Android访问服务器(TOMCAT)乱码引发的问题 1.浏览器往服务器发送的请求主要可分为2种:get.post:delete.head等不赘述. GET方式: 从浏览器上直接敲地址,最大特点就是参数直接跟在地址后面. POST方式:表单提交等. 2.访问过程: 浏览器中输入地址 –> 浏览器对中文进行编码 –>发送到服务器 ->服务器进行解码 如何浏览器编码和服务器解码用的字符集不一致就会发生乱码问题. 3.乱码的解决 默认浏览器使用UTF-8编码(IE默认GBK当然可以通过met

Android中使用SurfaceView和Canvas来绘制动画

其实每个View中都有Canvas可以用来绘制动画,只需要在这个View中重载onDraw()方法就可以,但是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做"画布")就和HTML5中的canvas标签一样可以在一定区域内自由绘制图形.Canvas+SurfaceView制作的动画与View Animation和Property Animation这类动画比起来更加适合大量的集中播放的动画,比如游戏画面.相机的图像显示等. 因为SurfaceView通常会在