8

ImageViews を親レイアウトに動的にonTouch追加し、追加された画像でズームイン/ズームアウト操作を実行しています。

追加したビューを削除したいonLongPress

img.setOnLongClickListener(longClickAction);
img.setOnTouchListener(touchAction); 
 

onLongPress:

OnLongClickListener longClickAction = new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        parentLayout.removeView((ImageView)v);
        return false;
    }
};

オンタッチ:

OnTouchListener touchAction = new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        ImageView i = (ImageView)v;

        // Perform zoom operation onTouch of ImageView
        zoom(i, event);
        return true; 
    }
};

onTouch イベントだけが機能するのはなぜですか?

両方を機能させるにはどうすればよいですか?

追加したビューを削除するにはどうすればよいですか?

4

6 に答える 6

21

onTouchこれはビューにイベントをディスパッチする初期状態であるため、ビューに対して常に呼び出されます。ビューを長押しすると、これがonTouch最初に呼び出され、戻っtrueてからonTouch(つまり、このイベントを消費したため、それ以上ディスパッチされないことを意味します)、呼び出されませんonLongPress。トリックは何をしますfalseonTouch

于 2012-06-08T10:09:56.610 に答える
0

コントロールを動的に削除する

あなたを助けるかもしれません

onTouch と onLongClick の使用

于 2012-06-08T10:07:01.637 に答える