2015-06-18

RemoteViews で、Button (やその他 View) の背景 (Background) を変更する方法

備忘録。


「コレだ!」という Android 向け音楽プレイヤに出会うことが出来ず、それなら作ってしまえと、暇でもないのに音楽プレイヤを作ってます。完全にバカです(笑)



で、上にある画像の「一時停止ボタン」をタッチしたとき、下の画像みたいに「再生ボタン」に変えたいわけです。



RemoteViews を Notification の builder に setContent して作っているのですが、RemoteViews を介してしか、再生/一時停止ボタンにアクセスできないわけです。

「どうしたものかなー」と思っていたら、案外簡単でした。

RemoteViews の setInt() を使えばよかったみたいです。普通に悩んでしまいました(笑)
厳密には、res/drawable 内の画像を参照することになります。(リソースID "R.drawable.xxx" が int なので。)

rv.setInt(R.id.button, "setBackgroundResource", R.drawable.background_image);

こんな感じで、引数はそれぞれ

"R.id.button" は、変更対象の View の ID
"setBackgroundResource" は、View の使いたいメソッド名
"R.drawable.background_image" は、メソッドの引数

を意味しています。

分かればなんてことないですし、他のメソッドを使いたい場合にも、応用が利きますね!


# 参考

0 件のコメント :

コメントを投稿