1

我正在尝试制作一个会改变状态的 imageButton。所以我制作了一个名为“btn_marisa”的xml文件:

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

<item android:drawable="@drawable/btn_marisa_bg_on" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_marisa_bg"/> <!-- default -->

</selector>

比我用 ImageButton 做了一个布局,这就是代码:

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageButton2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/imageButton2"
    android:adjustViewBounds="true"
    android:src="@drawable/marisa_logo"
    android:background="@drawable/btn_marisa"
    android:scaleType="fitStart" />

出于某种原因,在 Eclipse 中(在图形布局中)它看起来不错,但是当我将它安装在手机上时,只显示背景。它甚至可以改变状态,但我看不到我需要在背景上看到的图像。它是一个有图标和背景的按钮,我只希望背景改变状态。我错过了什么?谢谢!

4

2 回答 2

1

它应该工作。

但首先,请确保源图像@drawable/marisa_logo小于背景图像btn_marisa_bg_on/btn_marisa_bg,否则图像将与整个背景重叠,您将无法看到背景状态何时发生变化。

另外,请尝试删除此属性 android:scaleType="fitStart",因为这会拉伸源图像,并且您将再次无法看到背景。

于 2012-09-06T08:07:05.960 回答
0

尝试 Button 而不是 ImageButton。删除 android:src 并只留下 android:background。在大多数情况下,这应该足够了。试试看它是否显示你想要的。

如果您确实需要 ImageButton 中的背景和源代码,请先查看我的建议是否有效,然后逐一添加您的修改。

于 2012-09-06T08:07:36.813 回答