我想在Android程序中创建圆形按钮。我看过How to create EditText with rounded corners?

我要实现的是:

  • 圆形边缘按钮
  • 在不同状态(如Onclick,Focus)上更改按钮背景/外观
  • 使用我自己的PNG作为背景,而不创建形状。
  • 最佳答案

    您可以执行圆角按钮,而无需使用ImageView。

    背景选择器资源button_background.xml:

    <?xml version="1.0" encoding="utf-8" ?>
         <selector xmlns:android="http://schemas.android.com/apk/res/android">
         <!--  Non focused states
          -->
          <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/button_unfocused" />
          <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/button_unfocused" />
         <!--  Focused states
          -->
          <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/button_focus" />
          <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/button_focus" />
         <!--  Pressed
          -->
          <item android:state_pressed="true" android:drawable="@drawable/button_press" />
        </selector>
    

    对于每个状态,可绘制资源,例如button_press.xml:
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
      <stroke android:width="1dp" android:color="#FF404040" />
      <corners android:radius="6dp" />
      <gradient android:startColor="#FF6800" android:centerColor="#FF8000" android:endColor="#FF9700" android:angle="90" />
    </shape>
    

    注意corners属性,这可以使您圆圆!

    然后在按钮上设置背景可绘制:
    android:background="@drawable/button_background"
    

    编辑(9/2018):可以使用相同的技术来创建圆形按钮。圆形实际上只是一个方形按钮,其半径大小设置为方形边的1/2

    此外,在上面的示例中,strokegradient不是必需的元素,它们只是示例,您可以看到圆角形状

    07-24 09:49
    查看更多