当前位置: 首页 > news >正文

LruCache、Glide和SmartRefreshLayout使用总结

(一)Android智能下拉刷新框架-SmartRefreshLayout
https://github.com/scwang90/SmartRefreshLayout?tab=readme-ov-file
(二)LruCache使用
使用它可以进行图片的内存缓存

public class ImageLoaderUtil {private LruCache<String, Bitmap> mLruCache;/*** 构造函数*/public ImageLoaderUtil () {//设置最大缓存空间为运行时内存的 1/8int maxMemory = (int) Runtime.getRuntime().maxMemory();int cacheSize = maxMemory / 8;mLruCache = new LruCache<String, Bitmap>(cacheSize) {@Overrideprotected int sizeOf(String key, Bitmap value) {//计算一个元素的缓存大小return value.getByteCount();}};}/*** 添加图片到 LruCache** @param key* @param bitmap*/public void addBitmap(String key, Bitmap bitmap) {if (getBitmap(key) == null) {mLruCache.put(key, bitmap);}}/*** 从缓存中获取图片** @param key* @return*/public Bitmap getBitmap(String key) {return mLruCache.get(key);}/*** 从缓存中删除指定的 Bitmap** @param key*/public void removeBitmapFromMemory(String key) {mLruCache.remove(key);}
}

(三)Glide使用
Glide是一个快速高效的Android图片加载库,可以自动加载网络,本地文件,app资源中的图片。
Glide第一次加载一张图片后,就会自动帮我们把这张图片加入到内存中进行管理了

Glide基本使用
导入 implementation ‘com.github.bumptech.glide:glide:4.15.1’

最简单的使用
with()里面传入activity/fragment上下文、view都可以,它是一个重载方法
load()里面传图片,可以是drawable/mipmap里面图片/网络图片、本地图片
into()里放要显示图片的ImageView

Glide.with(this).load(R.drawable.dp).into(image);

进阶
1>Glide4中占位图的使用方法,包括(placeholder,error,fallback)三种占位图,一般在请求网络图片的时候使用
paceholder:正在请求图片的时候展示的图片
error:如果请求失败的时候展示的图片(如果没有设置,还是展示placeholder的占位符)
fallback:如果请求的url/model为null的时候展示的图片(如果没有设置,还是展示paceholder的占位符)

   //编写占位符RequestOptions requestOptions = new RequestOptions().placeholder(R.drawable.ic_launcher_foreground).error(R.mipmap.ic_launcher).fallback(R.drawable.ic_launcher_foreground).override(100, 100); // override 指定加载图片大小//Glide里面加入apply(占位符)应用占位符Glide.with(this).load(R.drawable.dp).apply(requestOptions).into(image);

2>变换
获取资源并修改它,然后返回被修改后的资源。通过变换操作是用来完成裁剪或对位图应用过滤器。比如图片进行圆角配置
通过transform()属性来实现。

//CircleCrop()圆角
Glide.with(this).load(R.drawable.dp).transform(new CircleCrop())//图片以圆角的方式.into(image);//RoundedCorners四个角度统一指定
Glide.with(this).load(R.drawable.dp).transform(new RoundedCorners(100)).into(image);//Rotate 旋转
Glide.with(this).load(R.drawable.dp).transform(new Rotate(90))//顺时针旋转90°,into(image);
http://www.lryc.cn/news/402164.html

相关文章:

  • Redis中数据分片与分片策略
  • leetcode_169. 多数元素
  • STM32 GPIO的工作原理
  • 板级调试小助手(2)ZYNQ自定义IP核构建属于自己的DDS外设
  • vim+cscope+ctags
  • Java 8的变革:函数式编程和Lambda表达式探索
  • Java集合框架的内部揭秘:List、Set与Map的深潜之旅
  • 爬虫(二)——爬虫的伪装
  • 空安全编程的典范:Java 8中的安全应用指南
  • Docker Machine 深入解析
  • 20.x86游戏实战-远线程注入的实现
  • 06MFC之对话框--重绘元文件
  • 鼠标的发明和鼠标“变形记”
  • 快捷:通过胶水语言实现工作中测试流程并行、加速
  • MySQL 和 PostgreSQL,我到底选择哪个?
  • Java —— 内部类
  • 高职院校人工智能人才培养成果导向系统构建、实施要点与评量方法
  • ffmpeg中的超时控制
  • 搜维尔科技:【研究】触觉技术将在5年内以8种方式改变人们的世界
  • 项目收获总结--MyBatis的知识收获
  • 数据库管理-第221期 Oracle的高可用-04(20240717)
  • navicat15已连接忘记密码
  • 企业管理必备:学会寻找客户绝佳方法。
  • 昇思25天学习打卡营第29天 | 文本解码原理--以MindNLP为例
  • 元服务体验-服务发现
  • 设计模式学习(二)工厂模式——抽象工厂模式+注册表
  • 同三维T80004解码器视频使用操作说明书:高清HDMI解码器,高清SDI解码器,4K超清HDMI解码器,双路4K超高清解码器
  • Flutter应用开发:掌握StatefulWidget的实用技巧
  • SCADA系统在哪些行业中取得了不斐的成绩!
  • layui 监听弹窗关闭并刷新父级table