

Androidでoverlay表示をしているViewで下の通常のレイヤーにタッチイベントを伝播させつつ、`ACTION_MOVE`などのイベントを補足したいのですが、現状`FLAG_WATCH_OUTSIDE_TOUCH`を利用することで、`ACTION_OUTSIDE`は捕捉できています。

[以前の質問](https://ja.stackoverflow.com/questions/14544/android%E3%81%A7overlay%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9Fview%E3%81%AB%E3%82%BF%E3%83%83%E3%83%81%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%82%92%E6%B6%88%E8%B2%BB%E3%81%95%E3%81%9B%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B)からの試行錯誤中です。

[code]

    LayoutInflater layoutInflater = LayoutInflater.from(this);
    
    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
            | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
            PixelFormat.TRANSLUCENT);
    
    mView = layoutInflater.inflate( R.layout.service_overlay, null);
    
    mWm = (WindowManager) getSystemService( Context.WINDOW_SERVICE );
    mWm.addView(mView, params);
    
    mView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.d( TAG, "onTouch; act: " + event.getAction());
            return true;
        }
    });
    
[/code]

servive_overlay.xmlは、次のように空の`RelatveLayout`のみです。

[code]

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#80FF8080">
    </RelativeLayout>
    
[/code]

`ACTION_OUTSIDE`を補足後、`ACTION_MOVE`を補足したいのですが、`RelativeLayout`をカスタムビューなどに変更して`onTouchEvent`や`onInterceptTouchEvent`、`dispatchTouchEvent`等を利用しても捕捉できません。  
`onInterceptTouchEvent`では`ACTION_OUTSIDE`すら発生しませんでした。

`ACTION_MOVE`補足中は、下のレイヤーにタッチイベントを伝えられなくても良いです。

やりたいことは、適当に設定したホットスポットでタッチを開始し、そこからジェスチャーを補足するようなイメージです。  
ホットスポットが矩形ではないため、Buttonや他のViewを用いた方法は使えません。  
（overlayしているViewではsetRotationやsetXなども正しく動きませんでした）

なにか良い方法はありますか？


CC BY-SA 3.0
2015-08-18T08:31:51.853
14578
2015-08-18T08:31:51.853
2017-04-13T12:52:39.113
-1
10963
question
android android-layout
android - overlay表示しているViewでACTION_OUTSIDE後にACTION_MOVEを取得したい