【问题标题】:Android ImageButton state not changingAndroid ImageButton 状态没有改变
【发布时间】:2012-10-12 19:28:35
【问题描述】:

我的 ImageButton 不改变状态有问题。当我单击或触摸按钮时,它会保持相同的图像。这是我用作选择器的 XML。

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
 android:state_focused="true"
 android:state_pressed="false"
 android:drawable="@drawable/pushed" />
<item
 android:state_focused="true"
 android:state_pressed="true"
 android:drawable="@drawable/pushed" />
<item
 android:state_focused="false"
 android:state_pressed="true"
 android:drawable="@drawable/pushed" />
<item  
 android:drawable="@drawable/default" />
</selector>

我将 main.xml 中的这个选择器称为

android:background="@drawable/imagechoice"

imagechoice.xml 是带有选择器的文件

我不明白为什么这不起作用,除非我必须有一些 java 代码,但我所看到的一切都说这应该起作用。

【问题讨论】:

标签: android selector state imagebutton


【解决方案1】:

当使用 ImageButton 时,它不是应该使用的 'src' 属性而不是背景吗?

【讨论】:

  • 好吧,'src' 属性在图像周围设置了一个边框,这也不起作用。
【解决方案2】:

确保将相同图像和按钮 XML 复制到每个“可绘制”文件夹(hdpi、ldpi、mdpi)中。 这就是我在我的应用上解决这个问题的方法。

祝你好运:)

【讨论】:

    【解决方案3】:

    我有几乎相同的 XML,它工作得很好。你确定你没有在某处替换代码中的可绘制对象吗?

    另一方面,您的 XML 可以通过使用状态匹配的级联特性来简化。

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true"
              android:drawable="@drawable/pushed"
              />
        <item android:state_focused="true"
              android:drawable="@drawable/pushed"
              />
        <item android:drawable="@drawable/default"
              />
    </selector>
    

    【讨论】:

      【解决方案4】:

      这是我的 xml 按钮,上面有我自己的自定义图像,效果很好:

      <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/btn_off" />
      <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
      <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
      <item android:drawable="@drawable/btn_off" />
      </selector>
      

      【讨论】:

      • 您是否在使用 IDE,例如 Eclipse?也许清理项目以确保 R 文件刷新自己并仔细检查艺术是正确的艺术。我不太确定为什么你的代码不起作用。
      • 我正在使用 Eclipse,我会尝试使用 R 文件来做到这一点。谢谢
      【解决方案5】:

      确保您将图像按钮背景设置为如下所述。我认为您没有将选择器设置为背景,而是将图像设置为背景。

       <Button
              android:id="@+id/b1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:background="@drawable/button_up_selector"
              android:text="1"
              android:textColor="#fffafa"
              android:layout_marginRight="5dp"
              android:layout_marginBottom="5dp"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 2019-03-19
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        相关资源
        最近更新 更多