オーバーレイ表示
上記のURLのような方法で、常時カスタムビューをオーバーレイ表示しています。
カスタムビューは画面全体を覆うような形なのですが、そこでタッチイベントを拾ってしまい
下層のViewまでタッチイベントが通りません。
アプリ内の重なるView同士なら、上のViewに
java
1view1 = (MyView1) findViewById(R.id.view1); 2view2 = (MyView2) findViewById(R.id.view2); 3view1.setOnTouchListener(new OnTouchListener() { 4 @Override 5 public boolean onTouch(View v, MotionEvent e { 6 view2.onTouchEvent(e); 7 view1.onTouchEvent(e); 8 return true; 9 } 10});
こんな感じにしたらよいのでは?と思いつくのですが、Serviceを利用し常駐させている状態で、
常駐させているView+下層のViewである、ホーム画面などに対して同時にタッチイベントを通す方法が思いつきません。
どのようにしたら良いのでしょうか。。。
よろしくお願い致します。
試したこと
・onTouchの返り値をfalseにする→メイン画面+オーバーレイ表示させたカスタムビューどちらもタッチイベント発生せず
・WindowManager.LayoutParamsの第三引数をTYPE_SYSTEM_OVERLAYに変更→メイン画面にのみタッチイベント発生
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/25 13:36