【发布时间】:2017-01-30 18:49:18
【问题描述】:
我计划在 Android TV 上发布游戏。我已经开发了包含一些按钮的游戏主屏幕。
我需要为每个按钮状态设置不同的可绘制对象。我只需要三个状态:
- 默认
- 专注
- 按下
为了根据不同的按钮状态显示不同的drawable,我创建了以下.xml文件:
buttonquickgame.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/greenbutton_focused" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/greenbutton_focused" /> <!-- focused -->
<item android:drawable="@drawable/greenbutton" /> <!-- default -->
</selector>
我已将此 xml 文件放在 res/drawable 文件夹中。我完全按照谷歌在这里的建议:https://developer.android.com/training/tv/start/navigation.html
然后我将按钮的背景设置为之前的 .xml 文件,如下所示:
<Button
android:id="@+id/start"
android:layout_width="250.0dip"
android:layout_height="60.0dip"
android:layout_marginTop="20dip"
android:background="@drawable/buttonquickgame"
android:onClick="OnClickButton"
/>
问题是应用程序加载,按钮具有默认状态图标,当我按下它时,它会正确显示按下的drawable,但无论如何它都不会显示聚焦的drawable。
我什么都试过了。我什至以编程方式请求焦点,焦点可绘制不会出现。我在模拟器和我的 Sony Android TV 中检查了这种行为,但没有成功。
您对我在这里缺少什么有任何想法吗?
非常感谢您!
【问题讨论】:
标签: java android android-studio android-tv