3

2 つのビューがあります。大きい方が下にあり、小さい方が上にあります。次の図に表示:

ここに画像の説明を入力

ここで、view1 (view2 の外側) でマウスを押してから、view2 に移動します。移動中にマウスがview2内にある場合でも、view2はACTION_MOVEイベントを取得しないことがわかりました。view1 のみが取得できます。

私が欲しいもの:

マウスが view1 の内側にあり、view2 の外側にある場合、view1 にACTION_MOVEイベントを処理させます。マウスがビュー 2 に移動した場合は、ビュー 2 にイベントを処理させACTION_MOVEます。

どうやってするの?

PS: Android のバージョンは 2.x です

4

1 に答える 1

1

それはできませんが、他にできることはいくつかあります。

マウスとビュー 2 の座標を取得します。マウスがビュー 2 の境界内にある場合は、必要なものを試してください。または、必要に応じて、view2.onTouchメソッドを直接呼び出して、V2 の touchlistener クラスを作成できます。たとえば、次のようV2TouchListenerになります。

View v2 = ... ;
final V2TouchListener v2t = new V2TouchListener();
v2.setOnTouchListener(v2t);
v1.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        switch (action & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            // do something
            break;
        case MotionEvent.ACTION_MOVE:
            // do something
            //if mouse is in bounds of view2 do this:
            //for example view is between x= 20 and x = 50
            if((event.getX() < 50) &&(event.getX() > 20) )
            v2t.onTouch(v2, event);
            break;
        }

        return false;
    }
});
于 2012-11-23T13:41:16.380 に答える