#Glide 概述

Glide,就像 Picasso,能够从多个源去加载和闪现图片,一起也统筹缓存和在做图片处理的时分保持一个低内存消耗。它已经在 Google 官方 APP (如 Google 2015开发者大会的应用动画梦工厂程序)中运用了,就appearance和 Picasso 相同受欢迎。在这个系列中,咱们要讨论 Glide 和 Picasso 的不同和优势app是什么意思

Glide制作缓存者要求最少有三个参数
• With(Context context) ,很多AndroidAPI调用,Context是有必要的。
• Load(String imageUrl),这个ImageUrl便是我googleplay们要传的图片地址,网络URL。
• Into(ImageView imaggiteeeView),这个便是咱们想把URL 加载到哪个ImageView中。


#配置Gradle

dependencies {
compile 'com.github.bumptech.glide:ggoogle谷歌查找主页lide:3动画专业.7.0'
}

上面仅仅简单的概述一波
Glide能够加载一下几种类型的图片资源:

  1. 加载网络地址资源
   Glide.with(this)
.缓存视频怎样转入本地视频loa动画d(git指令"http://i.imgur.com/Dvpvklgithub中文官网网页R.png")
.fitCenter()
.into(iv_1);
  1. 加载drawable资源
     Glide.with(this)
.load(R.drawable.ic_launcher)
.placeholder(R.mipmaappstorep.ic_launcher_round)
.error(R.mipmap.ic_launcher_round)
.into(iv_2);
  1. 从Uri加载资源缓存视频兼并app下载
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.ic_launcher);
tv_title3.setText("从 Uri 中加载");
Glide.with(this)
.load(uri)
.placeholder(R.drawable.ic_launcher)
.err动画制作软件or(Rappreciate.mipmap.ic_launchegithub永久回家地址r_round)
.dontAnimate() //加载没有任何动画
.into(iv_3);
  1. 从文件File加载资源
//这个文件或许不存在于你的设备中。但是你能够用任何文件途径,去指定一个图片途径。
File file = new File(Environmappointmentent.getEgoogle商铺xternalStora动画片汪汪队gePublicDirectory(Enviro缓存视频兼并nment.DIRECTORY_PICTURES), "S61215-011806.jpg");
tv_title4.setText("从文件中加载");
Glide.with(this)
.loaappstored(file)
.into(iv_4);
  1. 还能够giti加载webp图片资源

当然前面仅仅讲了皮裘罢了,Glide很强壮。咱们持续了解其它google商铺特征。


1. 占位符 placeGitholder
该特征,在图片资源未加载结束时,占位符会在动画制作软件Imageview里闪现

Glide.with(this)
.google商铺load("http://i.imgur.com/Dvpvkl缓存视频R.png")
.placeholder(R.drawable.ic_launcher)
.into(iv_1);

直接上图,看加载网络地址资源图
Android—Glide运用教程(一)


2. 差错占位符error
该特征,在图片资源加载失利时,占位git教程符会在Imageview里闪现
还有一个就google服务结构是,差错占位符,error()github接受的参数只能是已经初始化的 drawable 政策或者指明它的资源(R.drawable.)。

 Glide.with(this)
.load("http://i.imgur.c动画梦工厂om缓存视频在手机哪里找/DvpvklR.png")
.error缓存的视频怎样保存到本地(R.mipmap.ic_launcher_round)
.into(iv_1);

直接上图,看加载网络地址资源图
咱们能够看到在没网的情况下,咱们的异常占位符闪现了出来。
反之把网络图片资源加载出来
Android—Glide运用教程(一)


3. 图片淡入动画特征crossFade()
这儿Git要说的是动态图我就不添加了,能够看上面的图缓存视频兼并

 Gl缓存视频在手机哪里找ide.with(this)
.load("http://i.imgur.com/DvpvklR.png")
.crossFagoogle空间de()
.into(iv_1)
  1. 根据该源码,咱们能够看出crossfade()办法咱们能够传参 。crossFade(int duration)。假定你想要去减慢(或加速)动画,随时能够传一个毫秒的时间给这个办法。动画默许的持续时间是 300毫秒。

Android—Glide运用教程(一)


4. doapproachntAnimate()
这个办法便是直接闪github中文官网网页现图片,没有淡入淡出效果

 Glide.with(this)
.load("http://i.imgur.com/appearDvpvklR.png")
.dontAnimate()
.into(ivgoogle服务结构_1)

**5. 图画设置巨细 override(horizontalSize, verticalSize) **
Glide 有愈加高动画效的内存处理。Glide 主动约束了图片的规范在缓存和内存中,并给到 ImageView 需求的规范。关于 Glide,假定图片不会主动适配到 ImageView,调用 override(horizontalSize, verticalSiappreciateze) 。这将在图片闪现到 ImageView之前从头改动图片巨细。

 Glgit指令ide.with(this)google商铺
.load("applehttp://i.imgur.coAPPm/DvpvklR.p缓存视频怎样转入本地视频ng")
.override(500, 300)
.into(iv_1)

当你还没有政策 view 去知道规范的时分,这个选缓存清理项也或许是有用的。比如,假定 App 想要在闪屏界面预热缓存,它还不能测量 ImageView 的规范。但是,假定你知道这个图片多少大,用 overrideapproach 去供应清楚的规范。


6.缩放图画centerCrop()
CenterCrop()是一个裁剪技能,动画头像即缩放图画让它填充到 ImageView 边界内并且裁剪额外的部分。ImageView 或许会完全填充,但图画或许不会完好闪现。

 Glide.with(this)
.lo动画片少儿小猪佩奇ad("http://i.imgur.com/DvpvklR.png")
.override(500, 300)
.centerCrop()
.into(iv_1)

7.缩放图画fitCenter()
fitCenter() 是裁剪技能,即缩放图画让图画都测量出google翻译来等于或小于 ImageView 的鸿沟规划。该图画将会完全闪现,但或动画片汪汪队许不会填满整个 ImageView。

 G缓存视频兼并lide.with(缓存视频怎样转入相册this)
.load("http://i.imgur.com/Dgoogle地球vpvklR.png")
.override(500, 300)
.fitCenter()
.into(iv_1)缓存视频怎样转入相册

8.一起能够加载Gif图画
缓存是什么意思儿只要是一个GIF图片链接就OK了!

Glide.with(this)
.load("htgithub是干什么的tp://2f.zol-img.com.cn/product/104_1200x900/305/cevDJaCdeLQ6.gif")
.override(800, 300)
.iappreciatento(iv_2);

在开发过程中github图片链接是惯例图片。那么咱们就需求检测是否是动态图,能够看下面代码
**asGif()**该特征能够强制把图appstore片转成GIF类型。

Glide.with(this)
.load("http://2f.zol-img.com.cn/product/104_1200x900/305/cevDJaCdeLQ6.gif")
.asGif()
.into(iv_2);

gitlab发过程中,有些GIF图太大。导致OOM异常,asBitmap()直接把GIF图,转成惯例图片(把GIF图片的榜首帧当作惯例图闪现)

Glide.with(this)
.load("http://2f.zol-img.com.cn/product/104动画制作软件_1200x900/305/cevDJaCdeLQ6.gif")
.asBitmap()
.into(iv_2);

9.闪现本地视频

String filePathgoogleplay安卓版下载 = "/Video/test_video.mp4";
Glide缓存视频变成本地视频
.with( context )
.load(缓存视频怎样转入相册 Uri.fromFile( new File( filePath ) ) )
.into( imageViewGifAsBitmap );

这儿google地球要说的是,只支撑本地视频。网络视频URL 是不会工作的。

DEMO地址请自行下载