Java ImageButton不更改图像
我有一个图像按钮:Java ImageButton不更改图像,java,android,Java,Android,我有一个图像按钮: <ImageButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/imageButton" android:layout_weight="0.5" android:layout_column="2" android:background="@null" android:src="@
<ImageButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/imageButton"
android:layout_weight="0.5"
android:layout_column="2"
android:background="@null"
android:src="@drawable/gender_choice"/>
gender_choice.xml如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/male_gender"
android:state_checked="true" />
<item
android:drawable="@drawable/female_gender"
android:state_checked="false"/>
</selector>
出于某种原因,当我运行应用程序并单击按钮时,它不会改变。我必须在点击式侦听器中实现什么吗?尝试将您的
可绘制的用作背景而不是src
,看看它是否可以这样工作
<Button
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/imageButton"
android:layout_weight="0.5"
android:layout_column="2"
android:background="@drawable/gender_choice"/>
伙计们,我把它弄明白了,所以我换成了一个切换按钮,这里最大的问题是背景拉伸了它,以至于它对于TableRow来说太大了。为它设置一个框架布局,这就解决了所有问题
这是我的带有切换按钮的FrameLayout,它调用在res/drawable文件夹中创建的gender_choice.xml
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:layout_column="2">
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/gender_choice"
android:textOn=""
android:textOff=""
android:id="@+id/toggleButton"
android:layout_gravity="center"/>
</FrameLayout>
在gender_choice.xml中有一个简单的选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/male_gender"
android:state_checked="true" />
<item
android:drawable="@drawable/female_gender"
android:state_checked="false"/>
</selector>
基本上就这些了,真不敢相信我花了4个小时在这上面 还是没什么,它似乎也拉长了。没想到创建图标并使其切换会如此困难。请参阅我的更新答案!我想这会解决你的问题!看起来你是在正确的轨道上,它先转到异性,然后返回,因为ImageButton
无法管理选中的状态。你需要一个复选框
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/male_gender"
android:state_checked="true" />
<item
android:drawable="@drawable/female_gender"
android:state_checked="false"/>
</selector>