• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android常用的图片加载库,

Android常用的图片加载库,

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android 图片加载库,android加载动态库,android 加载动画库,android 加载so库,android studio导入库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android常用的图片加载库,


 Android常用的图片加载库

 

前言:图片加载涉及到图片的缓存、图片的处理、图片的显示等。四种常用的图片加载框架,分别是Fresco、ImageLoader、 Picasso、 Glide。

 

Universal Image Loader:ImageLoader是比较老的框架,一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。

  ImageLoader开源库存哪些特征:

 

    1.多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等

    2.支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置

    3.支持图片的内存缓存,文件系统缓存或者SD卡缓存

    4.支持图片下载过程的监听

    5.根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存

    6.较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加加载图片,停止滑动的时候去加载图片

    7.提供在较慢的网络下对图片进行加载

 

Glide:Google推荐的图片加载库,专注于流畅的滚动。

  Glide开源库特征:


    1.支持 Gif、WebP、缩略图。甚至是 Video,所以更该当做一个媒体缓存。

    2.支持优先级处理。

    3.内存友好,图片默认使用默认 RGB_565 而不是 ARGB_888,虽然清晰度差些,但图片更小,也可配置到 ARGB_888等...

 

Picasso:Picasso是Square公司出品的一款非常优秀的开源图片加载库,是目前Android开发中超级流行的图片加载库之一,和OkHttp搭配起来更配呦!

     详情使用.

 

Fresco:Facebook出的,天生骄傲!不是一般的强大。

     详情使用.

 

效果(具体见源码):

 

开发环境:AndroidStudio2.2.1+gradle-2.14.1

 

引入依赖:

 //适配器
    compile 'com.classic.adapter:commonadapter:1.2'
    //注解式开发
    compile 'com.jakewharton:butterknife:7.0.1'

    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'

    compile 'com.github.bumptech.glide:glide:3.6.1'

    compile 'com.squareup.picasso:picasso:2.5.2'

 

涉及知识:

  1.注解式开发+(Commonadapter)万能适配器使用

  2.图片加载库:ImageLoader、Glide、Picasso

  3.WebView+SwipeRefreshLayout实现加载和刷新网页

 

部分代码(Gilde使用):

public class GildeActivity extends BaseActivity {

    /**
     * Glide的主要目的有两个:
     * 1.一个是实现平滑的图片列表滚动效果,
     * 2.另一个是支持远程图片的获取、大小调整和展示
     * 3.支持Gif 动画和视频剧照解码、智能的暂停和重新开始请求、支持缩略图

     * http://www.open-open.com/lib/view/open1440397324450.html
     */

    @Bind(R.id.img)
    ImageView img;

    @Bind(R.id.listview)
    ListView listView;


    private String imgurl = "http://avatar.csdn.net/4/A/A/1_zhh_csdn_ard.jpg";

    @Override
    protected int setContentView() {
        return R.layout.gilde_img_layout;
    }

    @Override
    protected void initLayout() {
        GlideAdapter adapter = new GlideAdapter(this, R.layout.listview_img_item, AppConfig.resultImgData());
        listView.setAdapter(adapter);
    }

    @OnClick({R.id.btn0, R.id.btn1, R.id.btn2})
    void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn0:
                test0();
                break;
            case R.id.btn1:
                test1();
                break;
            case R.id.btn2:
                // 必须在UI线程中调用
                Glide.get(GildeActivity.this).clearMemory();
                break;

        }

    }

    //基础glide网络图片加载
//      Glide的with方法不光接受Context,还接受Activity 和 Fragment,Context会自动的从他们获取

    //    图片的缩放,centerCrop()和fitCenter():
    //使用centerCrop是利用图片图填充ImageView设置的大小,如果ImageView的
    private void test0() {
        Glide.with(this)
                .load(imgurl)//路径支持png,jpg,gif,mp4
                .placeholder(R.mipmap.ic_launcher) // 预加载图片
                .error(R.mipmap.ic_launcher)//加载图片失败
                .crossFade()//淡入淡出动画效果
                .centerCrop()
                .into(img);

    }

    //gif显示
    private void test1() {
        Glide.with(this)
                .load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&
              sec=1491037864865&di=cc8f78a7e5c1d359839cec3463123b47&imgtype=0&
              src=http%3A%2F%2Fi.zeze.com%2Fattachment%2Fforum%2F201501%2F29%2F181236dyjtsu2qinms5qjz.jpg") .asGif() //判断加载的url资源是否为gif格式的资源 .placeholder(R.mipmap.ic_launcher) // 预加载图片 .error(R.mipmap.ic_launcher)//加载图片失败 .into(img); // .into(new GlideDrawableImageViewTarget(img, 1));//如果要控制Gif 显示次数,可以使用 } // 显示本地视频 private void test2() { String filePath = "/storage/emulated/0/Pictures/example_video.mp4"; Glide .with(this) .load(Uri.fromFile(new File(filePath))) .into(img); } //缓存 private void test3() { Glide .with(this) .load(imgurl) .skipMemoryCache(true) //跳过内存缓存 .into(img); } //缓存 private void test4() { Glide .with(this) .load(imgurl) .diskCacheStrategy(DiskCacheStrategy.NONE) //跳过硬盘缓存 .into(img); } /** * DiskCacheStrategy.NONE 什么都不缓存 * DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像 * DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的) * DiskCacheStrategy.ALL 缓存所有版本的图像(默认行为) */ // 使用Glide 显示圆形图片 private void test5() { Glide.with(<
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android常用的图片加载库,

相关文章

  • 2017-05-26Java多线程常见问题,java多线程
  • 2017-05-222.4.5 ListView简单实用
  • 2017-05-227.5.4 WebView文件下载
  • 2017-05-26安卓开源项目周报0104,安卓开源项目0104
  • 2017-05-26android WebView控件显示网页,androidwebview
  • 2017-05-26浅谈Android 通过ADB Wireless无线调试应用
  • 2017-05-26安卓开发中内存问题分析(一)工具篇
  • 2017-05-26Android系统四层架构分享,android四层架构
  • 2017-05-26两个Service之间相互监视的实现,两个service监视
  • 2017-05-26android工程师这么面试就能拿高薪,android高薪

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 一个简单的Makefile编译框架
    • APK瘦身记,如何实现高达53%的压缩效果,apk53%
    • Android API Guides---Animation Resources
    • android button的操作
    • 开发 Material Design+RxJava+Retrofit+MVP App 参考资料,rxjavaretrofit
    • Android 隐藏状态栏 标题栏
    • android高仿微信拍照、多选、预览、删除(去除相片)相冊功能
    • Cordova系列学习教程02 开发环境的准备和运行
    • android样式和主题(一),android样式主题
    • React Native Android入门实战及深入源码分析系列(2)——React Native源码编译

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有