首页 > 其他分享 >35. 图片加载框架Glide

35. 图片加载框架Glide

时间:2022-09-19 08:58:13浏览次数:82  
标签:24 Glide glide 35 bumptech drawable com 加载

35. 图片加载框架Glide

35.1 Glide的引入

官方地址:https://github.com/bumptech/glide

在这里插入图片描述

简体中文文档地址:https://muyangmin.github.io/glide-docs-cn/

在这里插入图片描述

引入

implementation 'com.github.bumptech.glide:glide:4.13.2'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'

在这里插入图片描述

同步

35.2 简单实用

布局文件中定义一个ImageView

在这里插入图片描述

java代码实现

//定位组件
ImageView imageView = findViewById(R.id.iv);

Glide.with(this)
        .load("https://profile.csdnimg.cn/8/9/D/1_weixin_44226181")
        .into(imageView);

在这里插入图片描述

由于是加载网络图片,所以要在清单文件中,配置网络权限。

<uses-permission android:name="android.permission.INTERNET"/>

在这里插入图片描述

运行

在这里插入图片描述

OK。

35.3 Glide占位符
placeholder

正在请求图片时展示的图片

error

请求失败时展示的图片(如果没有设置,还是展示placeholder的占位符)

fallback

如果请求的url/model为null时展示的图片(如果没有设置,还是展示placeholder的占位符)

创建请求配置

RequestOptions requestOptions = new RequestOptions()
        .placeholder(R.drawable.ic_baseline_cast_for_education_24)
        .error(R.drawable.ic_baseline_error_24)
        .fallback(R.drawable.ic_baseline_electric_bike_24)
        .override(100, 100);

在这里插入图片描述

35.4 Glide过渡动画

定义Glide如何从占位符到新加载的图片,或者从缩略图到全尺寸图像的过渡。

交叉淡入效果:

在这里插入图片描述

在这里插入图片描述

35.5 Glide变换

获取资源并修改它,然后返回被修改后的资源,通常变换操作是用来完成剪裁或对位图应用过滤器。

  1. CircleCrop:圆角
  2. RoundedCorners:四个角度统一指定
  3. GranularRoundedCorners:四个角度单独指定
  4. Rotate:旋转

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

35.6 Generated API

添加依赖

在这里插入图片描述

就是之前这个

在Application模块中包含一个AppGlideModule的实现:

package com.dingjiaxiong.myglide;

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public class MyAppModule extends AppGlideModule {
}

在这里插入图片描述

接下来以配置占位符为例,如下

在这里插入图片描述

GlideExtension与GlideOption

→ 可以定义一个频繁使用的选项集合。

定义一个配置类

在这里插入图片描述

package com.dingjiaxiong.myglide;

import com.bumptech.glide.annotation.GlideExtension;
import com.bumptech.glide.annotation.GlideOption;
import com.bumptech.glide.request.BaseRequestOptions;

@GlideExtension
public class MyAppExtension {
    private MyAppExtension(){} // 必须是私有的、无参的构造方法

    @GlideOption
    public static BaseRequestOptions<?> defaultImg(BaseRequestOptions<?> options){
        return options
                .placeholder(R.drawable.ic_baseline_electric_bike_24)
                .error(R.drawable.ic_baseline_error_24)
                .fallback(R.drawable.ic_baseline_cast_for_education_24);
    }
}

使用对比

在这里插入图片描述

标签:24,Glide,glide,35,bumptech,drawable,com,加载
From: https://www.cnblogs.com/55zjc/p/16706527.html

相关文章

  • 36. 网络加载框架OkHttp的同步与异步请求
    36.网络加载框架OkHttp的同步与异步请求36.1简介官方地址https://github.com/square/okhttpandroid网络框架之OKhttp一个处理网络请求的开源项目,是安卓端最火热......
  • 38. 网络加载框架Retrofit
    38.网络加载框架Retrofit38.1Retrofit简介Retrofit是一个RESTful的HTTP网络请求框架的封装。原因:网络请求的工作本质上是OkHttp完成,而Retrofit仅负责网络请求......
  • 39. 网络加载框架Retrofit中的转换器和适配器
    39.网络加载框架Retrofit其他39.1Retrofit中的转换器在接到服务器响应后,目前无论是OKhttp还是Retrofit都只能接收到String字符串类型的数据,在实际开发中,通常需要对字符......
  • Leetcode solution 2353. Design a Food Rating System
     ProblemStatement Designafoodratingsystemthatcandothefollowing:Modify theratingofafooditemlistedinthesystem.Returnthehighest-rated......
  • android小项目-菜谱APP-首页面设计上(RecyclerView+OKHttp+GSON+Glide)
    在上一节中,已经搭建好了导航栏,现在开始完成首页内容的设计。任务描述:实现从网络HTTP接口获取菜谱数据,并完成菜谱App主页面的布局设计。设计思路:1.数据层面,使用showapi的......
  • CF1352A - Sum of Round Numbers
    CF1352A-SumofRoundNumbersA.SumofRoundNumbersApositive(strictlygreaterthanzero)integeriscalledroundifitisoftheformd00...0.Inotherw......
  • Vue2:Vue的加载流程和IDFF
    vue加载流程1.每一个组件在加载时都会调用vue内部的render函数来把这个组件的tamplate选项的模板解析为一个JS对象这个对象跟DOM节点对象"长得一模一样",就是为了后来的......
  • 类加载过程
    一、类加载的时机场景遇到new、getstatic、putstatic、invokestatic四条字节码指令使用new关键字实例化对象读取/设置静态字段(除常量池内的静态字段)调用静态方法......
  • VSCode SSH Python 加载很慢的解决方法
    更改服务器设置!把LanhuageServer换一下就行了......
  • 小程序 : 请求,数据,事件,上拉加载下拉刷新
    //pages/profile/profile.jsPage({//数据data:{avatarURL:"",listCount:30},//监听下拉刷新onPullDownRefresh(){console.log("用......