1. 程式人生 > >Android TouchEvent事件傳遞機制

Android TouchEvent事件傳遞機制

public class MyActivity extends Activity {
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		Log.d("d", "【總統】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派");
		return super.dispatchTouchEvent(ev);
	}
	
	@Override
	public boolean onTouchEvent(MotionEvent ev) {
		boolean bo = false;
		Log.d("d", "【總統】任務<" + Util.actionToString(ev.getAction()) + "> : 下面都解決不了,下次再也不能靠你們了,哼…只能自己嘗試一下啦。能解決?" + bo);
		return bo;
	}
}

public class MyFrameLayout extends FrameLayout
{
	public MyFrameLayout(Context context, AttributeSet attrs){
		super(context, attrs);
	}
	
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		Log.d("d", "【省長】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派");
		return super.dispatchTouchEvent(ev);
	}

	@Override
	public boolean onInterceptTouchEvent(MotionEvent ev) {
		boolean bo = false;
		Log.d("d", "【省長】任務<" + Util.actionToString(ev.getAction()) + "> : 攔截嗎?" + bo);
		return bo;
	}

	@Override
	public boolean onTouchEvent(MotionEvent ev) {
		boolean bo = false;
		Log.d("d", "【省長】任務<" + Util.actionToString(ev.getAction()) + "> : 市長是個廢物,下次再也不找你了,我自己來嘗試一下。能解決?" + bo);
		return bo;
	}
}

public class MyLinearLayout extends LinearLayout{
	
	public MyLinearLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		Log.d("d", "【市長】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派");
		return super.dispatchTouchEvent(ev);
	}

	@Override
	public boolean onInterceptTouchEvent(MotionEvent ev) {
		boolean bo = false;
		Log.d("d", "【市長】任務<" + Util.actionToString(ev.getAction()) + "> : 攔截嗎?" + bo);
		return bo;
	}

	@Override
	public boolean onTouchEvent(MotionEvent ev) {
		boolean bo = false;
		Log.d("d", "【市長】任務<" + Util.actionToString(ev.getAction()) + "> : 農民真沒用,下次再也不找你了,我自己來嘗試一下。能解決?" + bo);
		return bo;
	}
}

public class MyTextView extends TextView
{
	public MyTextView(Context context, AttributeSet attrs){
		super(context, attrs);
	}
	
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev){
		Log.d("d", "【農民】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派,我下面沒人了,怎麼辦?自己幹吧");
		return super.dispatchTouchEvent(ev);
	}
	
	@Override
	public boolean onTouchEvent(MotionEvent ev){
		boolean bo = true;
		Log.d("d", "【農民】任務<" + Util.actionToString(ev.getAction()) + "> : 自己動手,埋頭苦幹。能解決?" + bo);
		return bo;
	}
}