イメージボタン付きのホームスクリーンウィジェットがあります。ボタンは保留中のインテントで動作していますが、ボタンが押されたときにボタンの画像を変更する方法がわかりません。
セレクターを使用してみましたが、ウィジェット テスト アクティビティでは機能しますが、リモートビューでは機能しません。
この機能をホーム画面ウィジェットに実装するにはどうすればよいですか?
イメージボタン付きのホームスクリーンウィジェットがあります。ボタンは保留中のインテントで動作していますが、ボタンが押されたときにボタンの画像を変更する方法がわかりません。
セレクターを使用してみましたが、ウィジェット テスト アクティビティでは機能しますが、リモートビューでは機能しません。
この機能をホーム画面ウィジェットに実装するにはどうすればよいですか?
リモートビュー内で別の画像を設定できます。
remoteView.setInt(R.id.buttonimg, "setImageResource", R.drawable.button_on);
セレクターを独自の XML ファイル内に移動し、res/drawable を配置してから、その xml ファイルを app-widget のレイアウト xml の imagebutton のリソースとして参照することで、機能させることができました。
ボタン画像.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>
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"
>
しかし、私は今別の問題を抱えています。セレクターでは、onPress で画像を変更することしかできません。リリースすると、画像が元に戻ります >:-(
プレス時に画像の状態の変化を取得し、次のプレス (トグルボタンなど) までその状態を維持するにはどうすればよいですか?