如果我需要为按钮设置较小的边框半径,为什么还要创建形状?

时间:2019-07-18 18:29:27

标签: android android-drawable android-shape

例如,在CSS中,我将使用属性border-radius: 10px。因此,此单个属性可节省我额外的开销。

我在互联网上进行了搜索,发现所有人都在用android做形状。为什么在android中,我们需要进行形状处理(额外的开销),以使按钮具有圆角等。为什么Shapes概念是在android中创建的。如果有Button,那么也应该有边界半径类型的属性。

您是否认为android开发支持不完整?

这背后的故事是什么?在此先感谢!

2 个答案:

答案 0 :(得分:2)

评论中提出的观点似乎在一定程度上回答了您的问题,但我只是想指出一点,您似乎并没有将苹果与苹果进行比较。 HTML和XML是声明性语言,而CSS是样式表语言。

您将能够使用HTML制作按钮,但无法对其进行样式设置和添加拐角,如您所提到的。

当以这种方式看到时,为什么XML允许我们通常使用形状和可绘制对象来对诸如Buttons之类的组件进行样式化就很有意义。这可能不是真正的原因,但我看到的是XML试图覆盖HTML和CSS一起做的事情,而“额外的开销”就是CSS在Web开发中要做的事情。

不过,我很想听听其他人的意见。

答案 1 :(得分:0)

  

如果有Button,则还应该有边框半径类型的属性。

有!而且使用非常简单。
只需在带有{strong> app:cornerRadius 属性的官方MaterialButton中使用Material Components library

类似的东西:

    <com.google.android.material.button.MaterialButton
        android:text="BUTTON"
        app:cornerRadius="8dp"
        ../>

enter image description here

您还可以在应用程序中全局使用此值,并将其添加到主题中。

  <style name="AppTheme" parent="Theme.MaterialComponents.Light">
     ....
     <item name="materialButtonStyle">@style/myButtonStyle</item>
  </style>

  <style name="myButtonStyle" parent="Widget.MaterialComponents.Button">
    <item name="cornerRadius">8dp</item>
  </style>