(一)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);