Androidのライブ壁紙のタッチイベント
4月 30th, 2010
public void onTouchEvent(MotionEvent event)
でタッチを拾うと、Homeのメニューを開くボタンや、
そのメニューのアイコンをクリックしたときなどにもタッチを拾ってしまう。
そこで、
http://developer.android.com/intl/ja/resources/articles/live-wallpapers.html
にも載っているが、onCommandを書き、
setTouchEventsEnabled(false);
を入れonTouchEventへ渡らないようにすることで、
壁紙へのタッチのみを拾うことが出来るようになる。
@Override
public Bundle onCommand(String action, int x, int y, int z,
Bundle extras, boolean resultRequested) {
if (“android.wallpaper.tap”.equals(action)) {
//action
}
return super.onCommand(action, x, y, z, extras, resultRequested);
}
ただ、なぜかエミュレーターでは動作せず、実機(Desire)では動作するという、
変な状況になってしまっている。
