gpt4 book ai didi

android - ImageView android :cropToPadding, 它实际上做了什么?

转载 作者:行者123 更新时间:2023-11-29 23:05:56 29 4
gpt4 key购买 nike

我浏览了标签 android:cropToPadding 的文档 here ,它只说:

If true, the image will be cropped to fit within its padding.

May be a boolean value, such as "true" or "false".

这让我很难理解。

我的应用程序中有一个 ImageView(由其他人开发):

<ImageView
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_gravity="center"
android:maxWidth="100dp"
android:padding="20dp" />

这个 ImageView 里面有 cropToPadding 标签,主屏幕上有大约 20 个 ImageView,里面都有这个标签,并且该应用程序显然需要时间来加载,因为有更多图片,但删除图片不是一个选项,所以当我遇到这个标签时,我正在寻找无用的东西并尝试优化布局。

删除此标签对 ImageView 中显示的图像没有任何变化,但每张图像都包含此标签肯定有某种原因。所以我开始寻找这个标签的作用,而文档并不清楚为什么要使用这个标签。

有人可以解释一下这个标签对图像的作用吗?我发现资源不多,我找到的只是“This crops the Image to padding”,这是什么意思!我知道填充是什么,我知道裁剪是什么,但是“设置此 ImageView 是否将裁剪为填充”是什么意思?

最佳答案

这是一个很难回答的问题,因为我们必须深入了解 ImageView 实际如何将图像绘制到屏幕上的一些细节。

首先要确定的是,有两个矩形会影响ImageView 的绘制行为。第一个是由 ImageView 的尺寸忽略填充定义的矩形。第二个是由 ImageView 的尺寸考虑填充定义的矩形。 (显然,如果 padding 为 0,那么这些将是相同的。)

接下来要确定的是 ImageView 都有一个缩放类型,它定义了当图像的固有尺寸与它所显示的矩形尺寸不匹配时如何拉伸(stretch)和/或裁剪图像正在被吸引。

默认缩放类型是 FIT_CENTER,它会缩小图像以适应 View 边界 + 填充(也就是说,图像将绘制在考虑填充的矩形内)。由于图像是在填充矩形的内部绘制的,android:cropToPadding 没有任何效果。

但是,其他比例类型的工作方式不同。缩放类型 CENTER 只是将图像定位在 View 的中间,但不执行缩放(因此如果图像大于 View ,它将被裁剪)。在这种情况下,android:cropToPadding 定义图像是只被 View 的边界裁剪还是同时被 View 的填充裁剪。

一图胜千言:

enter image description here

这张图片在 72x72 View 中显示了相同的 72x72 图像,具有 16dp 填充CENTER 缩放类型。左边的 ImageView 有 android:cropToPadding="false",右边的 ImageView 有 android:cropToPadding="true"

关于android - ImageView android :cropToPadding, 它实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568135/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com