您的位置:

Glide获取Bitmap的全方位讲解

一、Glide获取Bitmap

使用Glide获取Bitmap是非常容易的,只需要通过Glide.with().asBitmap()方法加载图片即可:

Glide.with(context)
     .load(url)
     .asBitmap()
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
            //bitmap已经加载完成,可以对其进行操作
         }
     });

   

通过这种方式,Glide会自动帮我们将网络图片或本地图片转换成Bitmap,并且会缓存该Bitmap以供下次快速加载。

二、Glide获取图片

除了获取Bitmap之外,我们还可以通过Glide获取图片,方法与获取Bitmap类似,只需要将asBitmap()方法换成asDrawable()即可:

Glide.with(context)
     .load(url)
     .asDrawable()
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Drawable resource, GlideAnimation glideAnimation) {
            //图片已经加载完成,可以对其进行操作
         }
     });

   

三、Glide获取视频第一帧

同样地,我们可以使用Glide获取视频的第一帧图像:

Glide.with(context)
     .load(url)
     .asBitmap()
     .diskCacheStrategy(DiskCacheStrategy.ALL)
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
            //视频第一帧图像已经加载完成,可以对其进行操作
         }
     });

   

需要注意的是,在使用Glide获取视频第一帧时,最好将diskCacheStrategy()设置为ALL,这样才能使Glide顺利地获取视频缩略图。

四、Glide获取缩略图有点慢

如果我们只需要一张图片的缩略图,那么使用上述的方法可能会有点慢,因为Glide会将整张图片加载完后再生成缩略图。此时,我们可以使用thumbnail()方法来快速获取缩略图:

Glide.with(context)
     .load(url)
     .thumbnail(0.1f)
     .into(new SimpleTarget<Bitmap>() {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
            //缩略图已经加载完成,可以对其进行操作
         }
     });

在上述代码中,thumbnail()方法的参数0.1f表示缩略图大小为原图的1/10。

五、Glide获取图片宽高

有时候,我们需要获取图片的宽高信息,以便后续的操作。这可以通过BitmapFactory.Options对象来实现:

Glide.with(context)
     .load(url)
     .asBitmap()
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
            int width = resource.getWidth();
            int height = resource.getHeight();
            //获取图片的宽高信息
         }
     });

   

六、Glide获取一级缓存

除了网络或本地图片外,Glide还会缓存在内存中。Glide缓存在内存中的图片称为一级缓存。可以使用MemoryCacheKey类来获取:

Glide.with(context)
     .load(url)
     .asBitmap()
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
            MemoryCacheKey key = new MemoryCacheKey(new GlideUrl(url), EmptySignature.obtain());
            Bitmap bitmap = memoryCache.get(key);
         }
     });

   

其中,memoryCache为Glide内部的一级缓存对象。如果你需要获取一级缓存之外的缓存,可以使用DiskLruCache。

七、Glide获取不到文件缩略图

当我们使用Glide获取本地图片的缩略图时,可能会出现获取不到缩略图的情况。解决方法是在placeholder()方法中设置一个空白图像,这样Glide会强制生成缩略图:

Glide.with(context)
     .load(new File(file))
     .placeholder(R.color.transparent)
     .thumbnail(0.1f)
     .into(new SimpleTarget<Bitmap>() {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
            //缩略图已经加载完成,可以对其进行操作
         }
     });

八、Glide获取Drawable

有时候,我们只需要获取Drawable而不是Bitmap或图片。这可以通过asDrawable()方法来实现:

Glide.with(context)
     .load(url)
     .asDrawable()
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Drawable resource, GlideAnimation glideAnimation) {
            //获取到Drawable对象,可以对其进行操作
         }
     });

   

九、Glide获取视频第一帧子线程

默认情况下,Glide会在主线程中执行,如果我们需要在子线程中获取视频第一帧图像,可以使用into()方法的另一个重载,指定Handler即可:

Glide.with(context)
     .load(url)
     .asBitmap()
     .diskCacheStrategy(DiskCacheStrategy.ALL)
     .into(new SimpleTarget
   () {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
            //视频第一帧图像已经加载完成,可以对其进行操作
         }
     }, new Handler(Looper.getMainLooper()));

   

总结

通过本文的介绍,相信大家已经对Glide获取Bitmap有了更深入的认识。Glide作为一款强大而易用的图片加载库,在Android开发中有着广泛的应用。

Glide获取Bitmap的全方位讲解

2023-05-18
全方位了解Glide缓存

2023-05-20
实现Android图片大小调整的方法

2023-05-14
Android图片处理神器Glide:高效加载、缩放、裁剪图

一、Glide简介 Glide是一款Android平台上的图片加载和缓存库。它首先是谷歌推出的,它可以处理本地和远程图像,并可以自定义处理每一帧。Glide内存使用相对较少,因此即使在加载大量图像或在

2023-12-08
提高用户体验的安卓imageView图片加载方法

一、使用Glide库 在安卓开发中,图片加载是非常常见的需求,而使用Glide库可以轻松地实现高品质、流畅的图片加载,增强用户体验。 Glide库支持本地图片、网络图片、GIF图片等多种图片格式,同时

2023-12-08
java学习笔记(java初学笔记)

2022-11-14
Android库:提高应用程序响应能力的工具集

2023-05-14
java方法整理笔记(java总结)

2022-11-08
AndroidBitmap压缩技巧:优化APP性能提升用户体

2023-05-18
ImageView使用指南

2023-05-19
Android中使用DrawBitmap实现图像展示

2023-05-14
印象笔记记录java学习(Java成长笔记)

2022-11-12
c语言笔记讲解,c语言程序笔记

2022-11-23
实现Android ImageView控件圆角显示

2023-05-14
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
Java Bitmap类:用于位图图像处理的工具

2023-05-21
重学java笔记,java笔记总结

2022-11-23
java笔记,尚硅谷java笔记

2022-12-01
Android Bitmap裁剪:轻松实现不同尺寸图片加载

2023-05-14
关于已前的学习笔记java的信息

2022-11-18