android事件分发机制——dispatchTouchEvent方法

来源:互联网 发布:mac怎么清理其他内存 编辑:程序博客网 时间:2024/05/17 03:32

本来是要实现监听触发屏幕的话,就延长3秒输出一行字,但是屏幕上会有许多控件,以前重写ontouchevent方法,只能监听空白屏幕的状态,但是如果加了button的话,就实现不了我想要的结果,后来看到dispatchTouchEvent方法了,看了好久才懂这个原理。原理直接网上找,直接贴代码了

一、mainactivity

package com.demo06;


import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;


public class MainActivity extends Activity {
private TextView tv1, tv2;
private Button button;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.text);


tv1.setText("is true");
button = (Button) findViewById(R.id.button01);
button.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
Log.d("TAG", "onTouch execute");
}
});


}


@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("TAG", "dispatchTouchEvent execute");


}


return super.dispatchTouchEvent(event);


}


}


0 0
原创粉丝点击