如果通过Glide 设置图片圆角

        要给图片设置一个圆角,通常方法是在ImageView 标签外添加一个CardView 标签,然后设置圆角值,但是今天遇到一个问题就是 RecyclerView Item 中这样操作的话会遇到这样的一个报错:

Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView

AI一下

        这个错误通常意味着在 RecyclerView 正在计算布局或滚动时,尝试调用了一个不允许的方法。这可能发生在以下情况下:

  1. 在布局计算期间调用了不允许的方法:当 RecyclerView 正在进行布局计算时,例如在调用 onBindViewHolder() 方法期间,你尝试调用了一个会触发布局重新计算的方法,比如 notifyDataSetChanged()

  2. 在滚动过程中调用了不允许的方法:当 RecyclerView 正在滚动时,尝试调用会触发布局重新计算的方法,同样会触发这个错误。

        要解决这个问题,你需要确保在 RecyclerView 正在计算布局或滚动时,不要调用会触发布局重新计算的方法。通常情况下,避免在 onBindViewHolder() 或滚动监听器中调用这些方法是一个好的做法。

        那还有什么别的方法吗?

        这是一个简单的问题,所以我们就采用最简单的方法就行了,代码里展示图片用到的事Glide,那就直接查找Gilde中有没有相关的方法,

AI一下

        Glide 提供了设置圆角的方法。你可以使用 transform() 方法来实现图片的圆角处理。

以下是一个示例代码,演示如何使用 Glide 加载图片并设置圆角:

// 导入 GlideApp 类
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;// 加载图片并设置圆角
Glide.with(context).load("图片的URL").apply(RequestOptions.circleCropTransform()) // 使用 circleCropTransform() 方法设置圆形图片,也可以使用圆角半径的方法设置圆角.into(imageView);

        在上面的示例中,使用了 RequestOptions.circleCropTransform() 方法来设置圆形图片,如果需要设置圆角的话,可以使用 RequestOptions 类的 roundedCorners() 方法来设置圆角半径。例如,要设置一个圆角半径为 10dp 的圆角图片,可以这样做:

RequestOptions options = new RequestOptions().transform(new RoundedCorners(10)); // 设置圆角半径为 10dp

然后将这个 RequestOptions 对象应用到 Glide 的加载过程中。

以上就完美解决了.

       当然还有一个问题就是图片的大小显示等,这里不涉及到问题,这是回顾一下ImageView的八种ScaleType

属性    描述
MATRIX    绘制时使用图像矩阵进行缩放
FIT_XY    不按照比例缩放图片,将图片塞满整个View
FIX_START    按比例缩放图片,顶部显示
FIT_CENTER    按比例缩放图片,居中显示
FIT_END    按比例缩放图片,底部显示
CENTER    不缩放,居中显示
CENTER_CROP    按比例缩放图片,居中显示
CENTER_INSIDE    按比例缩放,将图片完全显示在View内

MARIX

通过图像矩阵进行设置,操作十分灵活

android:scaleType="matrix"

Matrix matrix = new Matrix();
matrix.setScale(1.0f, 1.0f);
mImageView.setImageMatrix(matrix);

FIT_XY

不按照比例缩放图片,将图片塞满整个View

使用Matrix.ScaleToFit#FILL进行缩放,在X和Y方向上独立缩放,以便src与dst精确匹配。这可能会改变src的纵横比。

mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
或者xml配置

android:scaleType="fitXY"

FIT_START

按比例缩放图片,将图片完全显示,缩放某一边匹配View。在上边或左边显示

使用Matrix.ScaleToFit#START缩放,计算将保持原始src纵横比的比例,但也将确保src完全适合dst。至少有一个轴(X或Y)将精确匹配。开始将结果与dst的左边缘和上边缘对齐。

代码实现同FIT_XY

FIT_CENTER

按比例缩放图片,将图片完全显示,缩放某一边匹配View。居中显示

使用Matrix.ScaleToFit#CENTER缩放图像,计算将保持原始src纵横比的比例,但也将确保src完全适合dst。至少有一个轴(X或Y)将精确匹配。结果集中在dst内。

FIT_END

按比例缩放图片,见图片完全显示,缩放某一边匹配View。在下边或右侧显示

使用Matrix.ScaleToFit#END缩放图像。计算将保持原始src纵横比的比例,但也将确保src完全符合dst。至少有一个轴(X或Y)将精确匹配。END将结果与dst的右边缘和下边缘对齐。

CENTER

不缩放,居中显示

CENTER_CROP

按比例缩放图片,缩放到短边匹配View视图。居中显示

均匀缩放图像(保持图像的纵横比),以便图像的两个维度(宽度和高度)都等于或大于视图的相应维度(减去填充)。然后,图像在视图中居中

CENTER_INSIDE

按比例缩小,不会拉伸,将图片的长边完全显示在View内。居中显示

均匀缩放图像(保持图像的纵横比),以便图像的两个维度(宽度和高度)都等于或小于视图的相应维度(减去填充)。然后,图像在视图中居中。

整体效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RLC防孤岛负载测试,你了解多少?

RLC防孤岛负载测试是一种用于检测并防止电力系统中出现孤岛现象的测试方法。孤岛现象是指在电网故障或停电的情况下,部分电网与主电网断开连接,形成一个独立的、不受控制的电力系统。这种情况下,如果不及时切断与孤岛的连接,可能会…

【SAP ME 27】SAP ME创建开发组件(DC)serviceExt

目录 1、说明 2、创建开发组件(DC) 3、相关性 4、公共部分 5、构建

HarmonyOS 应用开发——入门

首先当然是华为的官方文档了,要认真学习: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/start-overview-0000001478061421-V2 不想花时间看,可以看我下面总结的干货,哈哈 第一个问题:stage架构和fa架构的区…

GPU服务器和普通服务器有何区别?

众所周知,服务器是网络中的重要设备,要接受少至几十人、多至成千上万人的访问,因此对服务器具有大数据量的快速吞吐、超强的稳定性、长时间运行等严格要求。 GPU服务器和普通服务器的主要区别在于硬件配置和适用场景,特别是处理器…

应急行业的智能安全帽(高端)

前面介绍了低端、中端安全帽,接着再讲讲高端安全帽。做高端安全帽的企业非常少,估计一只手都数的出来。确实也和智能安全帽这个领域体量有关系,并且他有一个新的“劲敌”——智能眼镜从其他领域瓜分原属于他的市场,这些都是题外话…

static为什么不能修饰String类

在Java中,static 关键字用于修饰类成员(字段、方法、内部类)以及代码块,它主要表示这些成员或代码块与类本身关联,而不是与类的实例关联。当你提到 static 不能修饰 String 类时,我猜你可能是在思考为什么 …

【操作系统】线程和进程的区别 详细版

进程的定义与特征 进程是一个正在执行的程序的实例。当我们运行一个程序时,它并不会立即执行。程序需要经过一系列步骤才能执行,而这些执行步骤被称为进程,进程是一个正在执行的程序的实例。每个进程都拥有自己的内存空间,与其他…

Cadence OrCAD学习笔记(1)OrCAD入门介绍

最近换份工作主要用到Cadence,之前都是用AD居多,所以现在也开始记录下Cadence学习过程,方便后面复习。 参考教程: OrCAD视频教程第1期:OrCAD入门介绍_哔哩哔哩_bilibili 本期主要介绍OrCAD的主要部件 其中用的较多的…

【软件开发规范篇】Git分支使用规范

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

软考之零碎片段记录(二十七)+复习巩固(十三、十四)

学习 1. 案例题 涉及到更新的。肯能会是数据流的终点E, P, D 数据流转。可能是 P->EP->D(数据更新)P->P(信息处理)D->P(提取数据信息) 2. 案例2 补充关系图时会提示不增加新的实体。则增加关联关系 3. 案例3 用例图 extend用于拓展,当一个用例…

磁盘未格式化,数据恢复大揭秘

一、磁盘未格式化现象概述 在日常使用电脑的过程中,我们有时会遇到磁盘未格式化的提示,这意味着我们的磁盘突然间变得不可识别,所有的数据和文件都似乎消失了。这种情况常常发生在外接硬盘、U盘等存储设备上,给我们的工作和生活带…

【AIGC调研系列】Gitlab的Duo Chat与其他辅助编程助手相比的优缺点

GitLab的Duo Chat作为一款AI编程助手,与其他辅助编程助手相比具有一系列的优势和潜在的缺点。 优点方面: 自动化测试与智能代码建议:Duo Chat能够自动生成测试代码,帮助团队提前发现潜在的程序错误,提高软件质量。同…

【Python】爬虫-基础入门

目录 一、什么是爬虫 二、爬虫的主要用途 三、学会爬虫需要掌握的技能 四、爬虫使用的语言 五、编写爬虫需要的库,以python为例 六、爬虫示例-python 示例一 示例二 示例三 一、什么是爬虫 爬虫,又称网络爬虫或网页爬虫,是一种用来自…

企微魔盒V15.6独立版源码+搭建环境教程

企微魔盒V15.6修复已知问题。 搭建教程: 系统环境:CentOS、 运行环境:宝塔 Linux 网站环境:Nginx 1.15.10 MySQL 5.6.46 PHP-7.1-7.3 常见插件:fileinfo ; redis

RAG 的是与非、Rewrite 和 Rerank

有时候,我觉得人类还真是种擅长画地为牢的动物,因为突然发现,当人们以文化/理念的名义形成团体/圈子的时候,其结局都不可避免地走向了筛选和区分的道路。或许,大家都不约而同地笃信,在成年人的世界里,那条不成文的社交潜规则——“只筛选不教育,只选择不改变”。与千百…

16.Blender 基础渲染工作流程及安装ACES

安装插件和菜单栏设置 在菜单栏的编辑里打开偏好设置 里面的插件界面 搜索node 给第三个打勾 点击安装,导入cat插件 安装完后,一定要打勾,选择上cat插件 这样N窗口才会显示MMD选项 导入场景 点击打开 把输出模式的帧率改为30fps 按…

C#装箱拆箱是怎么回事

代码如下: int i 123; object o i; // Boxing int j (int)o; // Unboxing 缺点: 当装箱和拆箱发生时,该技术允许将值类型视为对象。虽然非常有益,但它们会带来性能开销。值类型和引用类型之间的转换过多可能会导致垃圾回收…

Java学习1:java入门

java入门 1.介绍Java java——sun公司——被甲骨文收购 一开始叫Oak,后期改名为java; java之父詹姆斯高斯林 企业级应用开发 JavaSE JavaEE JavaME 高级编程语言 2.搭建开发环境 JDK8,JDK11,JDK17————>LTS长期支持版 ps:在…

效率工具RunFlow完全手册之局域网传输篇

本篇将向您介绍如何使用RunFlow在局域网(又称内网)内传输文件,同步剪贴板,无论是家庭局域网还是办公室局域网,都能轻松搞定文件传输以及剪贴板同步,如果您还没有安装RunFlow,可点这里去下载。 为…

【2024-4-28-001】我遇到的CMake语句

2024年4月28日,周日下午 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})这段语法是用于设置 CMake 构建过程中生成的可执行文件(运行时文件)的输出目录。 让我逐步解释它: set: 这是 CMake …