1. 主页 > 分享干货

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

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

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

添加依赖

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

添加网络权限

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

图片的使用

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、加载指定大小的图片

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<GlideDrawable> simpleTarget = new SimpleTarget<GlideDrawable>() { @Override public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) { imageView.setImageDrawable(resource); } }; //2、将图片实例记载到指定的imageview上,也可以做其他的事情 public void loadImage(View view) { String url = "https://www.jinnalai.com/uploads/article/2022/03/02/34362.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 = "https://www.jinnalai.com/uploads/article/2022/03/02/34362.jpg"; Glide.with(this) .load(url) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { return false; } }) .into(imageView); }

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com

本文链接:https://jinnalai.com/fenxiang/51415.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息