Android--使用inBitmap要注意的地方-创新互联

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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:Android--使用inBitmap要注意的地方-创新互联
当前网址:http://scyanting.com/article/ceihee.html