在 XML 中的 MaterialButton 上设置完美的圆形圆角
Posted
技术标签:
【中文标题】在 XML 中的 MaterialButton 上设置完美的圆形圆角【英文标题】:Setting perfectly circular rounded corners on a MaterialButton in XML 【发布时间】:2020-10-20 04:56:14 【问题描述】:所以我一直在尝试找到一种方法,使 Material Components 库中的 MaterialButton
具有完美的圆角。我的意思是实际上它们的角大小是按钮高度的 50%。
在某些documentation 中,它表明这应该可以通过下面的引用来实现。
可以使用绝对值或百分比值来确定形状大小。
我有几个可行的解决方案,首先测量视图并以这种方式设置角大小,但后来我发现ExtendedFloatingActionButton
使用RelativeCornerSize
对象。
但是,我仍然无法在 XML 中找到解决方案。
【问题讨论】:
【参考方案1】:您可以使用 shapeAppearanceOverlay
属性。
<com.google.android.material.button.MaterialButton
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Button.50"
.../>
与:
<style name="ShapeAppearanceOverlay.Button.50" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
您可以使用绝对值或百分比值。
【讨论】:
这很好用,谢谢,由于某种原因,它在布局预览中根本不显示,但在运行时有效,所以我认为我太快放弃了类似的解决方案! 如果它也可以帮助您投赞成票 ;)【参考方案2】:Material Design 有特定的命令。
我无法比answer更好地解释它
它适用于 Android Studio 3.1 或更高版本
【讨论】:
感谢您的回答,但是我没有看到任何提及将角半径设置为百分比?他们似乎仍在使用硬编码值。 您使用的是 Kotlin 还是 Java? Kotlin,虽然我对两者都很满意! Kotlin 有自己的功能,我相信使用百分比。看看这个:developer.android.com/reference/kotlin/androidx/ui/foundation/…以上是关于在 XML 中的 MaterialButton 上设置完美的圆形圆角的主要内容,如果未能解决你的问题,请参考以下文章
android material design 风格组件(MaterialButton,MaterialButtonToggleGroup,Chip,ChipGroup)大汇总.
可在 MaterialButton android 上绘制的选择器
更新到 Material 1.2.0 后,MaterialButton 上缺少角半径属性
Android MaterialButton使用详解,告别shapeselector
Android MaterialButton使用详解,告别shapeselector
Android iconGravity 不适用于具有 CircularProgressIndicator 的 MaterialButton