0

我的按钮有一张图片。为了使用它,我必须为每个状态添加 1 个附加图像:1. 禁用 2. 选择 3. 按下等。

在 iOS 中,所有这些额外的状态都是自动处理的,并从提供的原始图像中延迟。

是否有可能在 Android 上实现这一点?

4

5 回答 5

1

是否有可能在 Android 上实现这一点?

不,不是。您需要随身携带所有州的图像来定义选择器

您可以定义 button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">


    <!-- Selected state -->
    <item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item>

    <!-- Pressed  state -->
    <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item>

     <!-- Disabled   state -->
    <item android:drawable="@drawable/button_bg_disabled" android:state_enabled="false"></item>

    <!-- Normal state -->
    <item android:drawable="@drawable/button_bg_normal"></item>



</selector>

然后只需将此选择器分配为background按钮

<Button
     android:id="@+id/button1"
     android:background="@drawable/button_selector"
     android:layout_width="200dp"
     android:layout_height="126dp"
     android:text="Hello" />

参考:按钮选择器

希望对你有帮助ツ</p>

于 2014-11-18T07:21:41.250 回答
0

这个答案是指如何在Android中处理按钮状态 您可以单独创建一个按钮布局文件并将其放入res > layout文件夹中

例如:

如果布局文件名是btn.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:state_pressed="true"  android:drawable="@drawable/btn_pressed" />   
  <item android:drawable="@drawable/btn_normal"/> 

</selector>

你可以设置BackgroundResource一个Button

yourButton.setBackgroundResource(R.layout.btn);

编辑

此外,您可以参考这个更接近回答您的问题的链接

于 2014-11-18T07:20:42.237 回答
0

您将不得不使用 android 的选择器。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/normal" />
</selector>

 android:background="@drawable/selector_button" />

看看这个链接。

于 2014-11-18T07:20:44.253 回答
0

据我所知,您需要在一个名为 cursor 的新资源文件中处理此状态:例如:

<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/edittext_selector" android:layout_height="fill_parent"
    android:layout_width="fill_parent">
    <!-- Image display in background in select state -->
    <item
       android:state_pressed="true"
       android:drawable="@drawable/edittextback1">
    </item>

    <!-- Image display in background in select state -->
    <item
        android:state_enabled="true"
        android:state_focused="true"
        android:drawable="@drawable/edittextback2">
    </item>

    <!-- Default state -->
    <!--<item android:state_enabled="true"-->
        <!--android:drawable="@drawable/your_ninepath_image">-->
    <!--</item>-->
</selector>
于 2014-11-18T07:23:16.767 回答
0

对于选中并按下,您可以使用带有根的 xml 文件作为按钮的背景,但对于禁用,我想您需要在 java 代码中处理它。我不确定禁用状态。

于 2014-11-18T07:21:27.170 回答