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/8
        int maxMemory = (int) Runtime.getRuntime().maxMemory();
        int cacheSize = maxMemory / 8;
        mLruCache = new LruCache<String, Bitmap>(cacheSize) {
            @Override
            protected 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);

相关推荐

  1. LruCache、GlideSmartRefreshLayout使用总结

    2024-07-14 16:08:03       29 阅读
  2. FAISS原理使用总结

    2024-07-14 16:08:03       30 阅读
  3. spring restTemplate的使用学习总结

    2024-07-14 16:08:03       30 阅读
  4. 杂记:使用 mac windows 以及编辑器的总结

    2024-07-14 16:08:03       51 阅读
  5. Vue3中propsemits的使用总结

    2024-07-14 16:08:03       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 16:08:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 16:08:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 16:08:03       62 阅读
  4. Python语言-面向对象

    2024-07-14 16:08:03       72 阅读

热门阅读

  1. [NeetCode 150] Merge K Sorted Linked Lists

    2024-07-14 16:08:03       28 阅读
  2. AWS S3 基本概念

    2024-07-14 16:08:03       25 阅读
  3. 大型土木工程项目灾害防御规划与风险评估系统

    2024-07-14 16:08:03       22 阅读
  4. MySQL面试题

    2024-07-14 16:08:03       19 阅读
  5. 【QT系列】快速了解QT怎么用

    2024-07-14 16:08:03       27 阅读
  6. 【Linux 基础】df -h 的输出信息解读

    2024-07-14 16:08:03       28 阅读
  7. 老生常谈的页面渲染流程

    2024-07-14 16:08:03       21 阅读
  8. 虚拟地址空间(Virtual Address Space, VAS)

    2024-07-14 16:08:03       22 阅读
  9. 定期更新github相关hosts

    2024-07-14 16:08:03       24 阅读
  10. 前端面试题日常练-day86 【面试题】

    2024-07-14 16:08:03       19 阅读