一个有关canvas的Bug
2011-09-29 12:18
330 查看
昨天写程序的时候碰到很恼人的一个问题,刚开始的时候还以为是我程序的原因,当我把所有代码注释掉的时候才发现是一个BUG。
希望哪个会提交BUg的牛人,大神。等等 帮忙提交上去。
Bug描述:
1.创建图片 bitmap = Bitmap.createBitmap(width * 3, width * m, Bitmap.Config.ARGB_8888);
2.获得这个图片的画布。 canvas = new Canvas(bitmap);
3,使用的时候 ,想把画布的内容重新画一个位置。。
canvas.drawBitmap(bitmap,0,width,null);
如果width<=0的时候 很正常 没有问题:
可是:
当width>0的时候
关于修复方法如下:
1,
最后只好将创建的bitmap保存到另一个bitmap里面,
Bitmap bitmap2=bitmap.copy(Bitmap.Config.ARGB_8888,false);
canvas.drawBitmap(bitmap2, 0, width, null);
才正常显示。。。,
不过在内存紧张的手机上会有内存溢出的错误,毕竟copy一张图片是很浪费内存的。
2.
直接使用
canvas.drawBitmap(bitmap,rect,rect,null);
就是使用图片的时候直接使用这块图片你想要的位置的内容,, 跳过了图片自己绘制自己和图片复制后再绘制的过程
这样可以达到节约内存,和节约程序效率的目的。
下次讲一个android手机删除系统应用后,如何恢复到一模一样的方法~~ 知道很多误删手机应用的同志很期待呢 ,,, 哈哈
希望哪个会提交BUg的牛人,大神。等等 帮忙提交上去。
Bug描述:
1.创建图片 bitmap = Bitmap.createBitmap(width * 3, width * m, Bitmap.Config.ARGB_8888);
2.获得这个图片的画布。 canvas = new Canvas(bitmap);
3,使用的时候 ,想把画布的内容重新画一个位置。。
canvas.drawBitmap(bitmap,0,width,null);
如果width<=0的时候 很正常 没有问题:
可是:
当width>0的时候
整个画布全部变成width那么宽的一小块一小块的内容了!!!
很恼人的原因是因为width的值的变化会产生一个不符合逻辑的结果。。关于修复方法如下:
1,
最后只好将创建的bitmap保存到另一个bitmap里面,
Bitmap bitmap2=bitmap.copy(Bitmap.Config.ARGB_8888,false);
canvas.drawBitmap(bitmap2, 0, width, null);
才正常显示。。。,
不过在内存紧张的手机上会有内存溢出的错误,毕竟copy一张图片是很浪费内存的。
2.
直接使用
canvas.drawBitmap(bitmap,rect,rect,null);
就是使用图片的时候直接使用这块图片你想要的位置的内容,, 跳过了图片自己绘制自己和图片复制后再绘制的过程
这样可以达到节约内存,和节约程序效率的目的。
下次讲一个android手机删除系统应用后,如何恢复到一模一样的方法~~ 知道很多误删手机应用的同志很期待呢 ,,, 哈哈
相关文章推荐
- 与number_format函数有关的一个bug?
- 与MySQL的注释、Query_cache有关的一个bug
- 一个有关sizeof的bug
- 一个有关fstream类的bug
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面) .
- 有关ArrayList增加Map引发的一个BUG
- 一个有关fstream类的bug
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面)
- 有关 IE 6 的一个 BUG
- iOS 6中与中文键盘有关的一个BUG
- AIX6.1/11.2.0.3在有关数据库SWAP一个BUG
- 与端口冲突有关的一个低概率bug的定位过程(这次不是360的错啊)---浅谈bind()函数返回失败
- MySQL的注释、Query_cache有关的一个bug
- 今天又发现IE的一个BUG!与Binary Behavior有关
- opera下canvas绘制圆弧arc的一个bug
- 一个有关fstream类的bug
- IE6图片加载的一个BUG
- Android Canvas drawBitmap 的一个效率问题
- 一个有关UE的漫画 – 我们的产品是怎么出来的?
- wingdb开发过程中遇到一个比较“头疼”的bug