【发布时间】:2011-10-10 15:18:55
【问题描述】:
我是 Android 的新手,我一直在尝试制作一个带有 3 张图片的图片按钮,默认、聚焦和按下。 我已经尝试了很多我找到的示例,但我似乎无法让按钮响应焦点。
我在这个论坛上找到了以下示例,它显示按钮,并响应被按下,但焦点没有改变。 谁能告诉我为什么?
【问题讨论】:
标签: android android-emulator android-widget
我是 Android 的新手,我一直在尝试制作一个带有 3 张图片的图片按钮,默认、聚焦和按下。 我已经尝试了很多我找到的示例,但我似乎无法让按钮响应焦点。
我在这个论坛上找到了以下示例,它显示按钮,并响应被按下,但焦点没有改变。 谁能告诉我为什么?
【问题讨论】:
标签: android android-emulator android-widget
您是否使用选择器来更改按钮后面的可绘制对象?例如,您是否使用了android:src="@drawable/selector1。您的按钮的选择器代码应如下所示(更多描述 here):
<?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/but1_pressed" />
<item android:state_focused="true" android:drawable="@drawable/but1_focused" />
<item android:drawable="@drawable/but1_default" />
</selector>
【讨论】:
android:focusable="true" 和 android:focusableInTouchMode="true"。您也可以尝试从 java 代码中调用 Button.requestFocus() 来测试焦点功能。
1.在res中新建一个名为color的文件夹
2. 创建一个像 button.xml 这样的 .xml 文件,所以它应该看起来像 res/color/button.xml
3.在.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/button_pressed"/> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused"/> <!-- focused -->
<item android:drawable="@drawable/button_default"/> <!-- default -->
</selector>
4.在布局中设置背景为@color/button.xml
【讨论】: