Android Glide常见使用方式讲解

 更新时间:2023年01月16日 14:45:33   作者:FranzLiszt1847  
对于Glide这个加载图片的框架,很多人都在用,我之前使用的是ImageLoader,最近查资料时,发现Glide才是Google推荐的加载图片框架,功能非常强大,而且还有Google专人维护,要知道,ImageLoader已经没人维护了,除了问题可没人解答。所以有必要整理一下Glide的使用

效果图

依赖

    implementation 'com.github.bumptech.glide:glide:4.13.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'
    implementation 'jp.wasabeef:glide-transformations:4.1.0'

普通显示

没有任何附加效果显示,请求结果返回之后,直接在图片容器中显示

  /**
     * 无附件效果*/
    private fun loadImage(){
        Glide.with(this)
            .asDrawable()
            .load(url)
            .dontAnimate()
            .into(binding.noStyleImage)
    }

占位符显示

当网络请求过多或者业务繁忙时,Glide返回可能会有一定延迟,此空窗期就会不显示任何东西,通过placeholder可添加一张占位符,在数据未返回之前,显示一张默认图片

 /**
     * 有默认占位图片*/
    private fun loadDefaultImage(){
        Glide.with(this)
            .asDrawable()
            .load(url)
            .placeholder(R.drawable.icon_default_songs)
            .error(R.drawable.icon_error)
            .dontAnimate()
            .into(binding.defaultImage)
    }

圆角显示

在开发需求中,往往会需要将某些图片进行圆角处理,通过transform(RoundedCorners(20))可完成圆角处理,其中20为圆角弯曲程度

 /**
     * 圆角图片*/
    private fun loadRadiusImage(){
        Glide.with(this)
            .asDrawable()
            .load(url)
            .transform(RoundedCorners(20))
            .placeholder(R.drawable.icon_default_songs)
            .error(R.drawable.icon_error)
            .dontAnimate()
            .into(binding.radiusImage)
    }

高斯模糊显示

有时会遇见将背景虚化、模糊处理等需求,通过apply(RequestOptions.bitmapTransform(BlurTransformation(20)))可完成上述需求,同样20为模糊程度

  /**
     * 高斯模糊图片效果*/
    private fun loadVagueImage(){
        Glide.with(this)
            .asDrawable()
            .load(url)
            .apply(RequestOptions.bitmapTransform(BlurTransformation(20)))
            .placeholder(R.drawable.icon_default_songs)
            .error(R.drawable.icon_error)
            .dontAnimate()
            .into(binding.vagueImage)
    }

生命周期

我们进入一个Activity时,触发网络请求,Glide开始请求数据,当Glide未完成数据返回时,我们退出此Activity,即销毁,会触发异常,因为Glide仍在运行,当它的数据返回时,发现Activity已经被销毁啦,就会产生报错异常,所以在必要的Glide代码中加一个生命周期判断

if (!this.isFinishing && !this.isDestroyed){
//Glide代码
}

图床工具推荐

最后推荐一个图床工具,可以将本地上传的图片转化为我们需要的URL格式,直接在chrome应用商店搜索B站图床,添加到扩展程序即可,相关的也有微博图床、即刻图床等

到此这篇关于Android Glide常见使用方式讲解的文章就介绍到这了,更多相关Android Glide内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入了解Android IO的底层原理

    深入了解Android IO的底层原理

    这篇文章主要介绍了深入了解Android IO的底层原理,IO有缓冲与非缓冲 IO、直接与非直接 IO、阻塞与非阻塞 IO、同步与异步 IO等分类,具体详情感兴趣的小伙伴可以参考下面文章内容
    2022-06-06
  • AlertDialog点击按钮不消失的实现方法

    AlertDialog点击按钮不消失的实现方法

    我有一个文本输入对话框,当我点击对话框上的“是”按钮,它会验证输入,然后关闭对话框,但是,如果输入错误,我想停留在同一个对话框中。怎么实现此功能呢?下面通过本文给大家分享下
    2017-01-01
  • android实现图片橡皮擦和快速染色功能

    android实现图片橡皮擦和快速染色功能

    这篇文章主要为大家详细介绍了android实现图片橡皮擦和快速染色功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 详解Android中AsyncTask机制

    详解Android中AsyncTask机制

    在Android当中,提供了两种方式来解决线程直接的通信问题,一种是通过Handler的机制,还有一种就是今天要详细讲解的 AsyncTask 机制,对android中asynctask相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Android仿QQ聊天撒花特效 很真实

    Android仿QQ聊天撒花特效 很真实

    本文写的这个特效,是关于聊天的,你肯定遇到过,就是你跟人家聊天的时候,比如发送应(么么哒),然后屏幕上全部就是表情了,今天我们就是做这个,撒花的特效,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android编程实现自定义控件的方法示例

    Android编程实现自定义控件的方法示例

    这篇文章主要介绍了Android编程实现自定义控件的方法,结合实例形式分析了Android自定义控件的布局、功能实现与使用技巧,需要的朋友可以参考下
    2017-06-06
  • Android安装apk文件并适配Android 7.0详解

    Android安装apk文件并适配Android 7.0详解

    这篇文章主要介绍了Android安装apk文件并适配Android 7.0详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Android事件分发机制示例分析

    Android事件分发机制示例分析

    在说事件分发之前,我们先想一个问题,在APP中我们点击一个View的时候,事件是如何传递到这个View的呢?其实这就是我理解的事件分发机制。即当手指点击屏幕时,事件传递到具体View的过程
    2022-08-08
  • React-Native之Android(6.0及以上)权限申请详解

    React-Native之Android(6.0及以上)权限申请详解

    这篇文章主要介绍了React-Native之Android(6.0及以上)权限申请详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • android电话模拟器(示例代码)

    android电话模拟器(示例代码)

    本篇文章我将为大家介绍一下android电话模拟器(示例代码),需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11

最新评论