Android主屏幕小部件中的ImageButton

Jos*_*osh 5 android widget selector imagebutton homescreen

我有一个带有图像按钮的主屏幕小部件.我有一个处理未决意图的按钮,但我似乎无法弄清楚如何在按下时更改按钮图像.

我尝试使用选择器,它适用于我的小部件测试活动,但不适用于remoteview.

我怎样才能在主屏幕小部件中实现此功能?

Jos*_*osh 0

我能够通过将选择器移动到它自己的 XML 文件中并放入 res/drawable 中,然后引用该 xml 文件作为应用程序小部件的布局 xml 中的图像按钮的资源来使其工作。

按钮img.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
 android:state_pressed="false"
 android:drawable="@drawable/button_off" />
<item
 android:state_pressed="true"
 android:drawable="@drawable/button_on" />
<item  
 android:drawable="@drawable/button_off" />
</selector>
Run Code Online (Sandbox Code Playgroud)

widget_layout.xml

<ImageButton
android:id="@+id/buttonimg"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_x="0px"
android:layout_y="2px"
android:clickable="true"
android:src="@drawable/button"
>
Run Code Online (Sandbox Code Playgroud)

然而,我现在有一个不同的问题。选择器只允许我在按下时更改图像。发布时,图像变回 >:-(

如何在按下时更改图像状态并保持该状态直到下次按下(如切换按钮)?