Android 性能优化之图片加载

简介

本文将记录图片加载有关优化以及开源框架的学习和使用,图片加载这一块也是常使用的老难重点了,有必要把这块好好的搞清除,后面可以坦然面对这些问题。

图片存储优化方式

加载一张图片耗费的内存资源 = 宽度 * 高度 * 每个像素占用的内存大小
从这里可以统筹使用: 尺寸压缩,质量压缩,内存重用

Bitmap的内存管理

在Andorid3.0以前,像素数据的支持保存在本地内存地址,bitmap本身是存储在dalvik堆中的,意味着程序员需要调用bitmap.recycle()来对bitmap进行回收。
在Android3.0以后,像素数据和位图都存储在Dalvik堆中,3.0后bitmap不被使用dalvik堆会自动回收。

Android 图标放置的位置

当在分辨率为xxhdi的手机内加载一张图片时,搜索图片进行加载的顺序是 xxhdpi -> xxxhdpi ->nodpi -> xhdpi -> hdpi
也就是说会先从对应分辨率的文件下搜索,如果没有然后由高向低搜索进行加载。记住找到了还会进行缩放。
同一张图片放在不同的资源目录下,会生成不同大小的bitmap

图片加载过程

内存缓存,通过构建hashmap,以图片的url为键,以bitmap为值进行缓存存储
文件缓存 通过url去寻找对应文件中的
如果还没有就去网络请求

图片加载

inJustDecodeBounds = true,在不加载内存的情况下获得图片的宽高
insampleSize 图片的压缩比
通过rgb_565来替换argb_8888可以降低图片内存占用
内存重用:inBitmap 假如已经加载过了就可以进行获取

    /**
     * 加载压缩图片---
     */
    private void loadPic() {
   
   
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(getResources(),R.drawable.flower,options);<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值