android图片加载框架(android课程设计小项目)

今天讲解的是谷歌推荐的图片框架glide的详细使用方法

首先打开AS工程-Android开发环境

添加依赖

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

添加网络权限

图片的使用

1、加载图片到imageView

Glide.with(Context context).load(Strint url).into(ImageView imageView);

2、各种形式的图片加载到ImageView


// 加载本地图片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

// 加载应用资源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

3、加载带有占位图

Glide.with(this).load(url).placeholder(R.drawable.loading).into(imageView);

占位图目的为在目的图片还未加载出来的时候,提前展示给用户的一张图片;

4、加载失败 放置占位符


Glide.with(this).load(url).placeholder(R.drawable.loading).error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)//关闭Glide的硬盘缓存机制
.into(imageView);


//DiskCacheStrategy.NONE: 表示不缓存任何内容。
//DiskCacheStrategy.SOURCE: 表示只缓存原始图片。
//DiskCacheStrategy.RESULT: 表示只缓存转换过后的图片(默认选项)。
//DiskCacheStrategy.ALL : 表示既缓存原始图片,也缓存转换过后的图片。

5、加载指定格式的图片–指定为静止图片


Glide.with(this)
.load(url)
.asBitmap()//只加载静态图片,如果是git图片则只加载第一帧。
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView);

6、加载动态图片


Glide.with(this)
.load(url)
.asGif()//加载动态图片,若现有图片为非gif图片,则直接加载错误占位图。
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView);

7、加载指定大小的图片

本文转载自:https://www.gylmap.com


Glide.with(this)
.load(url)
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.override(100, 100)//指定图片大小
.into(imageView)

8、关闭框架的内存缓存机制


Glide.with(this)
.load(url)
.skipMemoryCache(true) //传入参数为false时,则关闭内存缓存。
.into(imageView);

9、关闭硬盘的缓存

Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.NONE) //关闭硬盘缓存操作
.into(imageView);

10、利用Glide将图片加载到不同控件或加载成不同使用方式

//1、通过自己构造 target 可以获取到图片实例
SimpleTarget simpleTarget = new SimpleTarget() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) {
imageView.setImageDrawable(resource);
}
};

//2、将图片实例记载到指定的imageview上,也可以做其他的事情
public void loadImage(View view) {
String url = "http://cn.bing.com/az/hprichbg/rb/TOAD_ZH-CN7336795473_1920x1080.jpg";
Glide.with(this)
.load(url)
.into(simpleTarget);
}

11、还有一些需要 要求预加载图片,Glide 实现预加载


//a、预加载代码
Glide.with(this)
     .load(url)
     .diskCacheStrategy(DiskCacheStrategy.SOURCE)
     .preload();
 
//preload() 有两种重载
 // 1、带有参数的重载,参数作用是设置预加载的图片大小;
//2、不带参数的表示加载的图片为原始尺寸;
 
//b、使用预加载的图片
Glide.with(this)
     .load(url)
     .diskCacheStrategy(DiskCacheStrategy.SOURCE)
     .into(imageView);

12、监听 Glide 加载的状态

public void loadImage(View view) {
String url = "http://cn.bing.com/az/hprichbg/rb/TOAD_ZH-CN7336795473_1920x1080.jpg";
Glide.with(this)
.load(url)
.listener(new RequestListener() {
@Override
public boolean onException(Exception e, String model, Target target,
boolean isFirstResource) {
return false;
}

@Override
public boolean onResourceReady(GlideDrawable resource, String model,
Target target, boolean isFromMemoryCache, boolean isFirstResource) {
return false;
}
})
.into(imageView);
}
秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 惠普怎么扫描(惠普CB368A扫描)

    信大家对打印机并不陌生,很多人都用过打印机的打印和复印功能,但对于扫描功能可能就没那么熟悉了。今天我们就来图解说明,一步一步来解锁扫描功能。 如果是刚买的新打印机,你首先要做的第一…

    2022年4月3日 专栏投稿
  • 狗一斤多少钱(现在肉狗能卖多少钱一斤)

    很多人喜欢狗狗们年幼时,毛绒绒的可爱模样,但是作为生物的它们,始终都会长大,而一旦它们长大之后,不仅模样可能会大变样,性格,行为等等都可能会有不同程度上的改变,并且,成年犬的危险性…

    2022年6月3日 专栏投稿
  • 工伤怎么赔(十级工伤能赔10万吗)

    伤残等级一般分为一到十级,其中一级最重,十级最轻。 如果不幸遇到意外,导致伤残十级,保险能赔多少钱? 具体能赔多少钱,要看是否属于工伤?是否有意外险?保额有多高? 一、第一种情况:…

    2022年4月18日
  • 有痰咳不出来怎么办(热咳和寒咳的区别晚上)

    有些人特别容易咳嗽,不管是不是因为感冒所引起的咳嗽,整天都在咳咳咳,对于这些情况,有些人不是很重视,从而直接导致了身体换了一些更加严重的疾病,当我们身体出现咳嗽情况的时候,我们一定…

    2022年4月26日
  • wps最新版本是哪一个(wps2022和WPS2022区别)

    作为一名财务工作者,平时经常要和Excel打交道,但在很多细节方面,Excel却做得并不到位。前不久,一次偶然的机会试用了一下国产WPS软件,发现它的很多细节设计远比Excel精细…

    2022年5月17日 专栏投稿
  • 软件流程图怎么画(几款免费流程图制作软件)

    流程图是我们工作中常用的一类图表,可以非常直观地表示一个系统的信息流。但是有朋友就问了,用什么软件来画流程图比较好呢?其实,画流程图,很多软件都可以。下面介绍几种简单实用的流程图软…

    2022年6月22日
  • 怎么激活手机卡(怎么样才能激活手机)

    远特通信信时空的卡板,以淡紫色为主色调,卡板简洁大气。上边印有远特通信的logo和品牌名信时空,突出了自己的品牌。还印有“信可达 越无限”的标语,意思是以用户需求作为业务创新的标尺…

    2022年3月25日
  • 淘宝账号怎么注册(哪里有卖淘宝号的平台)

    一、淘宝开店详细解析: 1.淘宝开店满足条件 2.淘宝开店准备 3.淘宝会员注册 4.支付宝实名认证 5.淘宝开店认证 二、淘宝开店满足条件: 1.可以正常使用的手机号 2.一张年…

    2022年5月5日
  • 儿童家教机哪个牌子好(口碑最好的4款品牌家教机)

    都2020年了,学习机大家都不陌生,可能还是很多家庭和孩子的好伙伴。此次疫情期间,各省开学延迟,线下辅导班也纷纷关闭,学习机无疑是孩子们在家学习的好选择。现在市面上学习机品牌多种多…

    2022年6月22日 专栏投稿
  • 蓝牙多少钱(蓝牙耳机在手机店卖多少钱)

    真无线蓝牙耳机是近些年最热门的手机配件,价位也从几十元的国产品牌,到上千元的苹果、索尼。价格高昂的真无线蓝牙耳机,肯定有着更好的音质,和更好的使用体验,尤其是苹果AirPods系列…

    2022年5月23日 专栏投稿
品牌推广 在线咨询
返回顶部