2010-11-28 20 views
3

私は、さまざまな画面タッチを使って特定のイベントをトリガーするライブ壁紙を用意しています。現時点では動作していますが、私はすべてのタッチイベントを取得するようです。たとえば、ユーザーがアイコンをタッチしてアプリを起動すると、そのイベントも表示されるようです。Androidライブ壁紙タッチイベント階層

ユーザーがバックグラウンド画面(アイコン間ギャップ)に触れたかどうかを判断することができます。その時点で自分の行動しか取れず、他のものは無視できます。

私が待ち行列に入っていて、画面上に他のアプリケーションがない場合は、私がタッチイベントキューにいる場所を特定して私が待ち行列の最初のものであるときにのみ行動を取ることができますか?
その他のご提案をお願いします。 ありがとう リチャード

答えて

10

同じ問題に遭遇し、ネクサスの壁紙のソースを見て、それがどのように実装されているかを確認しました。

実際のホーム画面がタッチを消費したかどうかを判断することはできません。しかし、デフォルトのAndroidホーム画面は、空きスペースをタップすると壁紙にコマンドを送信します。だからあなたのエンジンでは、次のように記述することができます:

@Override 
public Bundle onCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested) { 
    if (action.equals(WallpaperManager.COMMAND_TAP)) { 
     // do whatever you would have done on ACTION_UP 
    } 
    return null; 
} 
+0

をパーフェクト:) - 私が望む正確に何が - ありがとう - あなたはネクサスコードをしてください見つけた私に知らせることができます - リチャード – Richard

+0

のhttp://android.git .kernel.org /?p = platform/packages/wallpapers/Basic.git; a = tree; f = src/com/android/wallpaper; hb = HEAD – Tim

+0

ありがとう - 私は自分自身を教育し始めるでしょう:) – Richard

関連する問題