Glide

*
*
* 使用
* 一、添加依赖
* compile 'com.github.bumptech.glide:glide:3.7.0'
* compile 'com.android.support:support-v4:24.0.1'
*
* 二、添加权限
* <uses-permission android:name="android.permission.INTERNET"/>
* <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
*
* 三、结合样式进行图片加载
*
*
* 1、如果使用的是ListView,可以直接在Adapter的getView()中使用:
* public View getView(...){
* if(convertView==null){
* ...
* }
* Glide.with(context).load(imageUrls[position].into(holder.iv));
*
* return convertView;
* }
*
*
* 2、如果使用的是RecycleView,可以在Adapter的onBindViewHolder()方法中使用
* public void onBindViewHolder(RVViewHolder holder,int position){
* Glide.with(MainActivity.this)
* .load(args[position])
* .inti(holder.iv);
* }
*
* 3、如果是加载网络图片时,由于加载过程中图片未能及时显示,此时可能需要设置等待时的图片,通过placeHolder()方法:
* Glide.with(context).load(UsageExampleListViewAdapter.eatFoodImages[0])
* .placeHolder(R.mipmap.ic_launcher)//也可以是一个drawable
* .into(imageViewPlaceHolder);
*
*
* 4、当加载图片失败时,通过error(Drawable drawable)方法设置加载失败后的图片显示:
* Glide.with(context).load("图片网址").error(R.mipmap.future_studio_launcher)
* .into(imageViewError);
*
* 5、图片的缩放,centerCrop()和fitCenter()
* 使用centerCrop()是利用图片图填充ImageView设置的大小,如果ImageView的高度是match_parent则图片就会被拉伸填充
* Glide.with(MainActivity.this).load(args[position]).centerCrop().into(holder.imageView);
*
* 使用fitCenter()即缩放图片让图像都测量出来等于或小于ImageView的边界范围该图像会完全显示,但可能不会填充满整个ImageView。
* Glide.with(MainActivity.this).load(args[position]).fitCenter().into(holder.imageView);
*
* 6、显示gif动画:
* Glide.with(context).load(gifUrl).asGif()//判断加载的url资源是否为gif格式的资源
* .error(R.drawable.full_cake).into(imageViewGif);
*
* 7、显示本地视频:
* String filePath = "/storage/emulated/0/Pictures/example_video.mp4";
* Glide.with(context).load(Uri.fromFile(new File(filePath))).into(imageViewGifAsBitmap);
*
* 8、缓存策略
* Glide.with(context).load(Images[0])
* .skipMemoryCache( true ) //跳过内存缓存
* .into( imageViewInternet );
*
* Glide.with(context).load(images[0])
* .diskCacheStrategy(DiskCacheStrategy.NONE) // 跳过硬盘缓存
* .into(imageViewInternet);
*
* DiskCacheStrategy.NONE 什么都不缓存
* DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像
* DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)
* DiskCacheStrategy.ALL 缓存所有版本的图像(默认行为)
*
* 9、优先级,设置图片加载的顺序:
* Priority.LOW
* Priority.NORMAL
* Priority.HIGH
* Priority.IMMEDIATE
*
* private void loadImageWithHighPriority() {
* Glide.with(context).load(images[0]).priority(Priority.HIGH).into(imageViewHero);
* }
*
* private void loadImagesWithLowPriority() {
* Glide.with(context).load(images[1]).priority(Priority.LOW).into(imageViewLowPrioLeft);
*
* Glide.with(context).load(images[2]).priority(Priority.LOW).into(imageViewLowPrioRight);
* }
*
* 10、当不需要将加载的资源直接放入到ImageView中而是想获取资源的Bitmap对象:
* //括号中的300,600代表宽和高但是未有作用
* SimpleTarget target = new SimpleTarget<Bitmap>(300,600) {
* @Override
* public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap>glideAnimation) {
* holder.imageView.setImageBitmap(resource);
* }
* };
*
* Glide.with(MainActivity.this).load(args[position]).asBitmap().into(target);
*
* 11、集成网络栈(okHttp,Volley):
* dependencies {
* // your other dependencies
* // ...
* // Glide
*
* compile 'com.github.bumptech.glide:glide:3.6.1'
* // Glide's OkHttp Integration
* compile 'com.github.bumptech.glide:okhttp-integration:1.3.1@aar'
* compile 'com.squareup.okhttp:okhttp:2.5.0'
* }
*
* dependencies {
* // your other dependencies
* // ...
* // Glide
* compile 'com.github.bumptech.glide:glide:3.6.1'
* // Glide's Volley Integration
* compile 'com.github.bumptech.glide:volley-integration:1.3.1@aar'
* compile 'com.mcxiaoke.volley:library:1.0.8'
* }
*
* 12、Glide的with()方法不光接受Context,还接受Activity和Fragment。Context会自动从他们获取。
* 将Activity和Fragment作为with()的好处是:图片加载会和Activity/Fragment的生命周期保持一致。
* 比如Paused状态在暂停加载,在Resumed的时候又自动重新加载。
*
* 13、默认Bitmap压缩格式为RGB_565

    

Picasso加载全尺寸图片质量高于Glide

Glide优势在于gif图片的加载以及按照ImageView大小加载相应尺寸的图片

 public class MainActivity extends AppCompatActivity {

     ImageView iv;

     @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv); Glide.with(this).load("http://img15.3lian.com/2015/f2/50/d/73.jpg")
.placeholder(new ColorDrawable(Color.BLUE)).into(iv);
}
}

MainActivity.java

详情见:

http://blog.csdn.net/kai_1215/article/details/51831511
http://blog.csdn.net/fancylovejava/article/details/44747759

Android图片框架---Glide的更多相关文章

  1. android 加载图片框架--Glide使用详解

    一.简介 Glide,一个被google所推荐的图片加载库,作者是bumptech.这个库被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方app.(PS:众所 ...

  2. Android 开源框架Glide的使用

    Glide是一个快速高效的多媒体管理和图像加载的框架,封装了Android平台的多媒体的解码,内存和硬盘缓存等,Glide支持解码.显示视频.图像和GIFs,Glide是基于定制的HttpUrlCon ...

  3. Android 图片框架

    1.图片框架:Picasso.Glide.Fresco 2.介绍: picasso:和Square的网络库能发挥最大作用,因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现 Glid ...

  4. android 图片解码显示流程

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jingxia2008/article/details/32327699 问题来源 android 能 ...

  5. Android图片加载与缓存开源框架:Android Glide

    <Android图片加载与缓存开源框架:Android Glide> Android Glide是一个开源的图片加载和缓存处理的第三方框架.和Android的Picasso库类似,个人感觉 ...

  6. Android图片缓存框架Glide

    Android图片缓存框架Glide Glide是Google提供的一个组件.它具有获取.解码和展示视频剧照.图片.动画等功能.它提供了灵活的API,帮助开发者将Glide应用在几乎任何网络协议栈中. ...

  7. Android图片载入框架最全解析(一),Glide的基本使用方法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439 本文同步发表于我的微信公众号.扫一扫文章底部的二维码或在微信搜索 郭 ...

  8. Android 图片加载框架 Glide 的用法

    https://github.com/bumptech/glide Android图片加载框架最全解析(一),Glide的基本用法http://blog.csdn.net/guolin_blog/ar ...

  9. Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

    本篇将是我们这个Glide系列的最后一篇文章. 其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了.那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定 ...

随机推荐

  1. 初试ubuntu14.4问题集锦

    接触Linux系统也好长时间了,但每次都是浅尝则止.前几天突发兴趣,想认真地学习一下这个名扬天下的稳定的操作系统.于是试着装了一下炒作的最凶的Ubuntu. 安装的Ubuntu系统版本为14.04. ...

  2. Oauth认证简介

    Oauth是什么: 1.Oauth是一种安全认证的协议: 2.Oauth为用户资源的授权提供了一个安全的.开放而又简易的标准: 3.Oauth的授权不会使第三方触及到用户的账号信息(用户名和密码). ...

  3. jQuery运维开发之第十七天

    JQuery 学习参考网址http://jquery.cuishifeng.cn/ python中叫模块,在DOM/BOM/Javascript中叫类库 现在的JQ版本有:1.x 2.x 3.x 建议 ...

  4. 新建maven project遇到的问题

    在m2e安装成功之后,开始创建maven project了,但是出现了如下错误: 结果在很偶然的情况下让我解决了,就是更新下m2.respository,点击下图中的Update Settings -

  5. Canny边缘检测-Wiki

    Canny edge dector 由 John F. Canny 在1986年提出. Canny 算法的发展 Canny算法的步骤 2.1 降噪 2.2 寻找图像的亮度梯度 2.3 非极大值抑制 2 ...

  6. 这个知识点不错,,学习一下先。。。无状态服务(stateless service)(转)

    这样的应用,显得高级一些哟~~:) +================== http://kyfxbl.iteye.com/blog/1831869 ========================= ...

  7. 跨进程发送消息数据(发送WM_COPYDATA消息,够简单的)

    1 //1.发送窗体 2 procedure TForm2.Button1Click(Sender: TObject); 3 var 4 h: HWND; 5 Size: Integer; 6 Cop ...

  8. QVariant(相当于是Java里面的Object,起到一个数据类型“擦除”的作用,可以使用Q_DECLARE_METATYPE进行注册)

    =QVariant= [%这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是 ...

  9. 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O

    五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O 五种I/O 模式:[1]        阻塞 I/O          ...

  10. 一键源码安装Ansible

    #!/bin/bash # @Name:install_ansible.sh # @Author:Eivllom # @Create -- # @Modify -- app_soft="/a ...