自学内容网 自学内容网

Android 图片优化

图片优化

图片OOM问题产生

1.一个页面一次加载过多图片

2.加载大图片没有进行压缩(尺寸,质量)

3.android 列表加载大量bitmap没有使用缓存

计算一张图片占用的内存:

宽*高*一个像素占用的内存大小

一个像素占用的内存大小

rgb_565(占两个字节)

argb_8888(占四个字节)

所以存储优化有三个方面:

尺寸压缩

1.inJustDecodesBounds=true可以直接获取宽高,不用加载

2.设置inSampleSize>=2

3.改变imageview大小没有什么作用,因为图片是存储在bitmap中

质量压缩:解码率

使用rgb_565(占两个字节)替代argb_8888(占四个字节)降低使用内存--bitmapfactory里有属性可以设置

内存重用:android 3.0以后 InBitmap

3.0以后不用时会自动回收,不需要再去调用bitmap.recycle 进行回收

android 图标匹配规则(应用图标尽量放在mip-hdpi)

xxhdpi--->xxxhdpi--->nodpi--->xhdpi--->hdpi

尽量将图片放在xxhdpi

240-320dpi-----xhdpi

320-480dpi--xxhdpi

480-640dpi---xxxhdpi

图片加载优化:

异步请求:图片放在后台请求

图片缓存:对列表中的图片进行缓存

网络请求:使用OKhttp--性能优秀 :使用连接池来减少请求延迟;可以缓存响应,减少重复数据的网络传输

懒加载:当图片呈现到可视区域再加载

尽量将图片放在xxhdpi

使用fresco 步骤:

  1. 在gradle 中引入相关包
  2. 在application中初始化
  3. 在使用时把用SimpleDraweeview 代替imageview


原文地址:https://blog.csdn.net/qq_26522993/article/details/144770832

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!