Compose设置圆角
ContentScale 是一个用于图片组件(如 Image)的属性,它指定了图片如何适应或填充其容器的尺寸。
介绍
Crop
: 图片将被缩放(保持其宽高比)以完全覆盖容器,如果图片的宽高比与容器不匹配,则图片的某些部分会被裁剪以确保图片填满整个容器。Fit
: 保持宽高比,确保图片的完整可见性而不裁剪FillBounds
: 填充整个容器但不保持宽高比,可能导致图片扭曲
ContentScale.Crop 的工作方式
- 保持宽高比:缩放图片时保持原始宽高比不变。
- 填充容器:图片被缩放到足以完全覆盖容器的尺寸。这意味着图片的某些部分可能会超出容器的边界,从而不在视图中显示。
- 裁剪:为了使图片完全覆盖容器,超出容器边界的图片部分将被裁剪掉。
示例
// 图片将被裁剪以填充Image组件的尺寸
Image(
painter = painterResource(id = R.drawable.my_image),
contentDescription = "Example Image",
contentScale = ContentScale.Crop
)
// 圆形头像
Image(
modifier = modifier
.size(dimensionResource(R.dimen.image_size))
.padding(dimensionResource(R.dimen.padding_small))
.clip(MaterialTheme.shapes.small),
contentScale = ContentScale.Crop,
painter = painterResource(dogIcon),
contentDescription = null
)