美文网首页Android知识Android开发Android技术知识
安卓编程技巧总结(5)图片处理

安卓编程技巧总结(5)图片处理

作者: Android技术分享 | 来源:发表于2018-03-01 16:29 被阅读0次

    1.图片的加载

    加载大图片或者一次性加载多张图片,尽量在异步线程中进行。
    常用图片加载框架有很多,如:Glide、ImageLoader等,
    可参考:
    https://www.jianshu.com/p/9034a40fdadb
    

    2.图片释放

    确定图片不再使用后,应及时释放内存。
    bmp.recycle();
    

    3.动画

    -- 在 Activity.onPause()或 Activity.onStop()回调中,应关闭当前 activity 正在执行的的动画;
    imageView.clearAnimation()
    
    -- 在动画或者其他异步任务结束时,应该考虑回调时刻的环境是否还支持业务处理。
    例如 Activity 的 onStop()函数已经执行,且在该函数中主动释放了资源,此时回调中如果不做判断就会空指针崩溃。
    
    1. UI卡顿、OOM
    -- 图片的加载,涉及到 IO 操作,以及 CPU 密集操作,很可能引起卡顿,甚至OOM,应进行缓存、压缩等优化处理。
    -- 图片的缓存通常用LruCache<String, Bitmap> mMemoryCache处理,也可以使用第三方工具Glide等,请自行查询资料。
    -- 使用 ARGB_565 代替 ARGB_8888,,注意RGB_565 是没有透明度的,如果图片本身需要保留透明度,那么
    就不能使用 RGB_565;
    Config config = drawableSave.getOpacity() != PixelFormat.OPAQUE ? Config.ARGB_8888 :Config.RGB_565;
    Bitmap bitmap = Bitmap.createBitmap(w, h, config);
    -- 谨慎使用 gif 图片,注意限制每个页面允许同时播放的 gif 图片,以及单个gif 图片的大小;
    -- 当View Animation 执行结束时,调用 View.clearAnimation()释放相关资源。
    -- 图片可使用软引用,请自行查找GC 可达性回收相关资料(强、软、弱、虚、不可达)
    -- 释放内存!释放内存!释放内存!
    

    更多图片相关的内容,请查看安卓编程技巧总结(1) 资源与UI布局处理


    第一篇: 安卓编程技巧总结(1) 资源与UI布局处理

    https://www.jianshu.com/p/ff97b15d5c9d

    第二篇: 安卓编程技巧总结(2) 基础组件开发

    https://www.jianshu.com/p/b05752377887

    第三篇:安卓编程技巧总结(3) 进程与线程处理

    https://www.jianshu.com/p/7d05c8a368bd

    第四篇:安卓编程技巧总结(4) 数据文件处理

    https://www.jianshu.com/p/0515df3b697d

    第五篇:安卓编程技巧总结(5) 图片处理

    https://www.jianshu.com/p/76690b2ba310

    第六篇:安卓编程技巧总结(6) APP安全分析

    https://www.jianshu.com/p/4347ff392122

    第七篇:安卓编程技巧总结(7) 性能检测代码分析

    https://www.jianshu.com/p/687f3c641408

    相关文章

      网友评论

        本文标题:安卓编程技巧总结(5)图片处理

        本文链接:https://www.haomeiwen.com/subject/ybqgxftx.html