状态按钮选择器安卓

4
我需要使用一个状态按钮选择器。我已经在互联网上阅读了一些关于这个主题的文章,但它仍然不能工作。
按钮代码(来自布局):
<Button
    android:id="@+id/btn_shoot"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_column="0"
    android:layout_gravity="left|bottom"
    android:layout_row="2"
    android:background="@drawable/button_style"/>

选择器代码(drawable):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/button_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_default" />
</selector>

谢谢你未来的回答。
1个回答

0
你可以尝试这个教程。

http://www.mkyong.com/android/android-imagebutton-selector-example/

准备3张按钮状态的图片,然后将其放入“resource/drawable”文件夹中。

  • button_normal_green.png – 默认的按钮图片。
  • button_focused_orange.png – 当按钮获取焦点时显示,例如当手机键盘移动(集中)到该按钮上时。
  • button_pressed_yellow.png – 按钮按下时显示。

现在,在“res/drawable/”文件夹中创建一个新的XML文件,可以自己命名,本例中我们给它起名为“new_button.xml”。这个文件定义了哪种按钮状态属于哪张图片。

现在,您可以通过这个ID引用该按钮:@drawable/new_button。

 <?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_focused_orange"
          android:state_focused="true" />
        <item android:drawable="@drawable/button_normal_green" />
    </selector>

打开“ res/layout/main.xml”文件,添加一个普通按钮,并通过“android:background="@drawable/new_button"”将背景图像附加到“new_button”上方。
您还可以在图像位置使用一些形状。为三个不同的按钮状态创建三个不同的形状。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
    android:radius="14dp"/>
<gradient
    android:angle="45"
    android:centerX="35%"
    android:centerColor="#7995A8"
    android:startColor="#E8E8E8"
    android:endColor="#000000"
    android:type="linear"/>
<padding
    android:left="0dp"
    android:top="0dp"
    android:right="0dp"
    android:bottom="0dp"/>
<size
    android:width="270dp"
    android:height="60dp"/>
<stroke
    android:width="3dp"
    android:color="#878787"/>
</shape> 

希望这能有所帮助


我遵循了这个教程,但还是不起作用。 - Osaky11
请问您尝试过什么,以便我能帮助您。 - Vikas Mane
我使用了我在问题中编写的解决方案,以及在互联网上找到的许多其他解决方案。但是选择器中的按下状态总是被忽略。我尝试以编程方式解决这个问题,它可以正常工作。但是当您按下按钮并将手指滑出按钮时(仍然按住屏幕),手机会保持按下状态。 - Osaky11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接