Android -- 使用inBitmap要注意的地方
来源:互联网 发布:淘宝大屏的轮播图 编辑:程序博客网 时间:2024/05/22 03:31
SDK版本
需要注意的是inBitmap只能在3.0以后使用。2.3上,bitmap的数据是存储在native的内存区域,并不是在Dalvik的内存堆上。
在android3.0开始,系统在BitmapFactory.Options里引入了inBitmap机制来配合缓存机制。如果在载入图片时传入了inBitmap那么载入的图片就是inBitmap里的值。这样可以统一有缓存和无缓存的载入方式。
使用inBitmap,在4.4之前,只能重用相同大小的bitmap的内存区域,而4.4之后你可以重用任何bitmap的内存区域,只要这块内存比将要分配内存的bitmap大就可以。例如给inBitmap赋值的图片大小为100-100,那么新申请的bitmap必须也为100-100才能够被重用。从SDK 19开始,新申请的bitmap大小必须小于或者等于已经赋值过的bitmap大小。
解码
新申请的bitmap与旧的bitmap必须有相同的解码格式,例如大家都是8888的,如果前面的bitmap是8888,那么就不能支持4444与565格式的bitmap了,不过可以通过创建一个包含多种典型可重用bitmap的对象池,这样后续的bitmap创建都能够找到合适的“模板”去进行重用。
DisplayingBitmaps
Managing Bitmap Memory 上的demo的DisplayingBitmaps.zip,代码也有用到inBitmap,但是DisplayingBitmaps功能还是很弱,因为遇到过不同的ImageView设置不同ScaleType,然后使用同一张图片会造成相互影响,设置图片圆角也是,所以这也是使用inBitmap要注意的地方。
使用
使用此方法需要inMutable=true,inSampleSize=1
测试
开发完APP最好用一些APP在线自动化测试工具进行一下测试:www.ineice.com- Android -- 使用inBitmap要注意的地方
- 关于Android PopupWindow 使用要注意的一些地方
- Android使用ListView应该注意的地方
- Android使用ListView应该注意的地方
- Android使用ListView应该注意的地方
- Android使用FrameLayout应该注意的地方
- 使用Android Animation注意的地方
- Android使用ListView应该注意的地方
- Android使用ListView应该注意的地方
- Android使用ListView应该注意的地方
- Android使用ListView应该注意的地方
- Android OkHttp的要注意的地方
- Vector使用时要注意的地方
- 使用case要注意的地方
- velocity使用中文要注意的地方
- 使用NSNotificationCenter时要注意的地方
- velocity使用中文要注意的地方
- inet_addr使用要注意的地方
- 欢迎使用CSDN-markdown编辑器
- JavaScript instanceof 运算符深入剖析
- Eclipse导入外部项目问题总结1
- Plist文件存储及沙盒路径详解
- windows service 2012:[7]搭建FTP服务器
- Android -- 使用inBitmap要注意的地方
- SSH之Hibernate save或update方法已经执行,但是数据库没保存数据
- Ajax实例
- Canvas绘制圆
- LeetCode----Single NumberII
- Redis GEO 测试
- Future 类
- ajax上传图片
- 常量指针、指针常量、野指针、空指针概念解析