Gilde基础使用

Glide是一款由Google员工开发的Android媒体管理框架,用于流畅地加载、解码和显示视频、图片和动画。本文介绍了如何集成Glide,包括最简单的使用方法、在ListView或GridView中的应用,以及缓存策略、占位符和加载动画的设置,还有图片的重设大小和缩放等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Glide 是 Google 员工的开源项目, Google I/O 上被推荐使用,一个高效、开源、Android设备上的媒体管理框架,它遵循BSD、MIT以及Apache 2.0协议发布。Glide具有获取、解码和展示视频剧照、图片、动画等功能,它还有灵活的API,这些API使开发者能够将Glide应用在几乎任何网络协议栈里。创建Glide的主要目的有两个,一个是实现平滑的图片列表滚动效果,另一个是支持远程图片的获取、大小调整和展示。
gitHub地址:https://github.com/bumptech/glide

1.集成环境

集成环境:在 Gradle 项目中在你的 ==build.gradle== 中添加以下代码,后面的3.6.1表示版本号,可以去github上查看最新的版本,

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

也可以使用mave集成环境:

<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>3.6.1</version>
<type>aar</type>
</dependency>

2.开始使用

2.1最简单的使用:


Glide.with(context).load(imageUrl).into(imageView);

参数说明:context可以是Context、Activity、FragmentActivity、Fragment。表示将加载 图片的请求周期动态管理起来
imageUrl:可以是文件对象、uri。表示要加载路片的路径,可以加载网络的图片。
imageView:表示要显示图片的控件。

2.2 在listView或者GridView中使用Glide

使用Glide在listView中加载图片和普通的使用方法一样,我们只需要在adapter中实现即可实现加载

             Glide
            .with(context)
            .load(imageUrls[position])
            .into((ImageView) convertView);

2.3 缓存策略

Glide框架自带了很多中的缓存策略,但是很多时候我们需要根据实际情况来进行选择缓存策略。下面介绍怎么更改缓存策略。

2.3.1 自定义缓存策略

            Glide.with(this)
            .load(imageUrl)
            .diskCacheStrategy(DiskCacheStrategy.ALL)//设置缓存策略
            .into(imageView);

缓存策略中参数说明:
all:缓存源资源和转换后的资源
none:不作任何磁盘缓存
source:缓存源资源
result:缓存转换后的资源

2.3.2 内存缓存策略:

Glide  
    .with( context )
    .load( eatFoodyImages[0] )
    .skipMemoryCache( true )//设置跳过内存缓存
    .into( imageViewInternet );

需要注意的是,这里的跳过内存缓存指的是不将图片缓存到内存中,对于网络图片,还是会将图片缓存到本地的磁盘中以避免重复网络加载。对于同以个url图片地址,两次在对内存缓存设置不一致时,会默认执行不跳过内存缓存,即执行==skipMemoryCache( false )==语句。

2.3.3 磁盘缓存策略:

Glide  
    .with( context )
    .load( imageUrl )
    .diskCacheStrategy( DiskCacheStrategy.NONE )//单独禁用磁盘缓存,但是内存缓存仍然使用
    .into( imageViewInternet );

如果需要将所有的内存和磁盘缓存全部警用,则可以参考下面的代码:

Glide  
    .with( context )
    .load( imageUrl )
    .diskCacheStrategy( DiskCacheStrategy.NONE )//禁用所有缓存
    .skipMemoryCache( true )//禁用内存缓存
    .into( imageViewInternet );

2.4 占位符何加载动画

2.4.1设置加占位符号:

Glide
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[0])
    .placeholder(R.mipmap.ic_launcher) //设置占位符
    .error(R.mipmap.future_studio_launcher) //设置错误占位符                     .into(imageViewPlaceholder);

2.4.2 设置加载动画

在加载图片时突然改变图片会显得比较显眼,所以我们可以使用动画效果来实现一个比较平滑的过度效果。Glide默认使用淡入淡出效果,如果你想用其他的动画效果,可参考下面的代码:

 Glide
    .with(this)
    .load(imageUrl)
    .animate(R.anim.item_alpha_in)
    .into(imageView);

R.anim.item_alpha_in的代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="500"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>

但是如果你想直接现实图片而不适用任何效果,可以在Glide的建造者中调用.dontAnimate().

Glide
.with(context)
.load(UsageExampleListViewAdapter.eatFoodyImages[0])
.placeholder(R.mipmap.ic_launcher) //
.error(R.mipmap.future_studio_launcher) //
.dontAnimate()//不实现动画效果
.into(imageViewFade);

2.5 重设图片大小和缩放

2.5.1 使用Override设置加载尺寸

Glide
    .with(context)
    .load(imageUrl)
    .override(600, 200) //
    .into(imageViewResize);

2.5.2 设置缩略图支持

简单的缩略图

Glide
    .with(this)
    .load(imageUrl)
    .thumbnail(0.1f)//设置缩略图,0.1f表示显示原来图像的10%
    .into(imageView);

用其他请求

private void loadImageThumbnailRequest() {  
    DrawableRequestBuilder<String> thumbnailRequest = Glide
        .with( context )
        .load( imageUrl );
      Glide
        .with( context )
        .load( UsageExampleGifAndVideos.gifUrl )
        .thumbnail( thumbnailRequest )
        .into( imageView3 );
}

第一个缩略图请求是完全独立于第二个原始请求的。该缩略图可以是不同的资源或图片 URL,你可以为其应用不同的转换。

2.5.3 缩放图片

对于任何图像操作,调整大小会让你的图片变得长宽失真,显示变得不正常。
这个时候可以使用裁剪技术来避免这种情况发生。

Glide
    .with(context)
    .load(imageUrl)
    .override(600, 200) //改变图片的大小
    .centerCrop() // 缩放图像让他填充到imageView界限内并且裁剪额外的部分。imageview可能会完全填充,但图像可能不会完整显示。
    .fitCenter() //缩放图像让图像测量出来小于或者等于imageview的边界范围,改图会完全显示,但可能不会填充整个uimageView。与centerCrop()裁剪技术二选一。
    .into(imageView);

2.5.4 设置动态GIF加载方式

Glide
    .with(this)
    .load(imageUrl)
    .asBitmap()
    .into(imageView);//显示gif静态图片

 Glide
    .with(this)
    .load(imageUrl)
    .asGif()
    .into(imageView);//显示gif动态图片

以上就是比较常见的Glide的用法,目前就写了这么多,以后有需要在添加更多的用法把。
~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值