Android 如果我需要一点按钮的边界半径,为什么我们需要创建形状?

Android 如果我需要一点按钮的边界半径,为什么我们需要创建形状?,android,android-drawable,android-button,android-shape,material-components-android,Android,Android Drawable,Android Button,Android Shape,Material Components Android,例如,在CSS中,我将使用属性边界半径:10px。因此,这个单一属性使我免于额外的开销 我搜索了整个互联网,发现所有人都在安卓系统中做形状。为什么在android中,我们需要使用形状(额外的开销)来制作圆角按钮等等。为什么形状的概念是在android中创建的。如果有按钮,则还应该有边界半径类型的属性 你不认为android开发支持是不完整的吗 这背后的故事是什么?提前感谢 评论中的观点似乎部分回答了你的问题,但我只想指出,你似乎不是在拿苹果来比较。HTML和XML是声明性语言,而CSS是样式表语

例如,在
CSS
中,我将使用属性
边界半径:10px
。因此,这个单一属性使我免于额外的开销

我搜索了整个互联网,发现所有人都在安卓系统中做形状。为什么在android中,我们需要使用形状(额外的开销)来制作圆角按钮等等。为什么形状的概念是在android中创建的。如果有
按钮
,则还应该有边界半径类型的属性

你不认为android开发支持是不完整的吗


这背后的故事是什么?提前感谢

评论中的观点似乎部分回答了你的问题,但我只想指出,你似乎不是在拿苹果来比较。HTML和XML是声明性语言,而CSS是样式表语言

你可以用HTML制作一个按钮,但不能像你提到的那样设计它的样式和添加一个角

从这个角度来看,XML为什么允许我们使用形状和可绘制图形为按钮等组件设置样式是有道理的。这可能不是实际原因,但我认为XML试图覆盖HTML和CSS一起做的事情,“额外开销”只是CSS在web开发中所做的事情

不过我很想听听其他的意见

如果有按钮,那么也应该有边界半径类型的属性

还有!而且使用起来非常简单。
只需在官方中使用app:cornerRadius属性即可

比如:

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

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

  <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>

....
@样式/我的按钮样式
8dp

如果已经有了Java,那么这个问题与Kotlin为什么会来是一样的@Sunny所有平台都有一些很酷的功能和局限性。你只有一个案例,这就是为什么它认为你是不合适的解决方案。但是,当你深入了解到使用形状有很多优点时,至少它们应该为组件提供一个完整的选项
属性
。在本例中,属性为
边框半径
。毫无疑问,形状有许多优点,但您的问题相当多。您有多种选项,例如笔划作为边框,半径作为形状。还有一些其他属性。他们把所有这些东西都放在一个形状文件里。这听起来不酷?你能专业地提供一个详细的答案吗,所以我们将把这个问题留给未来的安卓用户!!!“我完全同意你的观点,@Kevin。我指出
CSS
只是为了举例,它为设计
HTML
元素提供了充分的支持。@Kevin-你的单词
HTML和XML是声明性语言,而CSS是样式表语言。
消除了所有的困惑。非常感谢,先生