如何在android中实现按钮的非矩形形状

如何在android中实现按钮的非矩形形状,android,Android,嗨,我必须实现这个布局。它有这样的布局 我可以尝试将图标用作图像按钮,但按钮的活动状态与此类似 我应该如何进行此操作?您应该使用选择器,如下所示: 为按钮状态准备2张图像,并将其放入res/drawable文件夹 button_normal_green.png–默认图像按钮 button_pressed_yellow.png–按下按钮时显示 现在,在“res/drawable/”文件夹中创建一个新的XML文件,无论您想要什么名称,在本例中,我们只需给它一个名称“new_button.XML”。

嗨,我必须实现这个布局。它有这样的布局

我可以尝试将图标用作图像按钮,但按钮的活动状态与此类似


我应该如何进行此操作?

您应该使用
选择器
,如下所示:

  • 为按钮状态准备2张图像,并将其放入
    res/drawable
    文件夹

    button_normal_green.png–默认图像按钮

    button_pressed_yellow.png–按下按钮时显示

  • 现在,在“res/drawable/”文件夹中创建一个新的XML文件,无论您想要什么名称,在本例中,我们只需给它一个名称“new_button.XML”。这个文件定义了哪个按钮状态属于哪个图像

    <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
         <item android:drawable="@drawable/button_pressed_yellow" android:state_pressed="true" />
    
         <item android:drawable="@drawable/button_normal_green" />
      </selector>
    
    
    
  • 3.将背景设置为按钮

    <ImageButton
        android:id="@+id/imageButtonSelector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/new_button" />
    
    
    

    看看这个问题的太多,给你一个答案。上面的按钮很容易定位。代码> IMAEButue Stasy是中间的圆圈。你可以为每个部分创建<代码> IMAGE按钮< /代码> S,并以编程的方式在圆圈上定位,但是可点击的区域会重叠。所以我想BES。方法是让整个圆圈的所有按钮都可以点击,并有一个触摸监听器来检测圆圈的哪个部分被点击。也许你可以简化并将你的问题集中在这个特定的部分。顺便说一句:设计不错!@jboi你得到了100%。我可以用触摸列表的方法来显示每个按钮的两种状态吗axample?对于可绘制文件的不同状态,您可以使用
    选择器
    LevelListDrawable
    。使用它们,您可以为不同级别的接触和未接触状态定义不同的位图。使用
    ImageView.setLevel(…)
    您可以在运行时设置级别。谢谢,我的实际问题是按钮的形状,如果我使用矩形,我必须将按钮的某些部分保留为不可点击,否则它们将重叠。选择器帮助按钮如何变为非矩形?