在 Android 中,ImageView 默认是一个矩形。如何在 ImageView 中将其设为圆角矩形(将 Bitmap 的所有 4 个角剪成圆角矩形)?
请注意,从 2021 年起,只需使用 ShapeableImageView
原文由 michael 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Android 中,ImageView 默认是一个矩形。如何在 ImageView 中将其设为圆角矩形(将 Bitmap 的所有 4 个角剪成圆角矩形)?
请注意,从 2021 年起,只需使用 ShapeableImageView
原文由 michael 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以通过 ShapeableImageView
使用 ShapeAppearanceOverlay
来完成:
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:padding="4dp"
app:shapeAppearance="@style/ShapeAppearanceOverlay.Avatar"/>
样式 ShapeAppearanceOverlay.Avatar
位于 res/values/styles.xml
中:
<style name="ShapeAppearanceOverlay.Avatar" parent="ShapeAppearance.MaterialComponents.SmallComponent">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
这只需要等于 layout_height
和 layout_width
设置,否则将是药丸而不是圆圈。
原文由 Martin Zeitler 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
这是很晚的响应,但是对于正在寻找这个的其他人,您可以执行以下代码来手动圆角图像的角落。
http://www.ruibm.com/?p=184
这不是我的代码,但我已经使用了它,而且效果很好。我将它用作 ImageHelper 类中的助手,并对其进行了一点扩展,以传递给定图像所需的羽化量。
最终代码如下所示: