您的位置:首页 > 移动开发 > Android开发

Android OnTouchEvent OnTouchListner 方法区别

2016-08-11 14:57 363 查看
package com.agp.myandroid;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;

public class Activity_Fourth extends AppCompatActivity {
private View view;
TextView tvShowDimen;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fourth_activity);
view=findViewById(R.id.view);
tvShowDimen= (TextView) findViewById(R.id.tvShowDimen);

//view.onTouchEvent(MotionEvent event)View本身并没有OnTouchEvent。只有OnTouchListener
view.setOnTouchListener(new View.OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

int x= (int) event.getX();
int y= (int) event.getY();
tvShowDimen.setText("X坐标111:"+x+" ,Y坐标111:"+y);

return true;
//如果Return false说明监听到的事件没有被消费掉,直接递交给上层处理。上层是Activity的OnTouchEvent()。是整个Acitivity的Ontouch事件监听器。
//OnTouchListner是属于View中的事件监听器。如果在这个View能处理好自己的事,就return true。如果处理不了就设定为return False,就交由整个Activity的OnTouchEvent监听器处理
//这个事件。  true和false代表能不能被自身消耗掉。能不能自身处理掉这个信号!!!!
}
});
}

//写出来OnTouchEvent是重写这个方法。不写出来任然会执行,但是不会对收到的事件进行处理。
   public boolean onTouchEvent(MotionEvent event) {//        if (event.getAction()==MotionEvent.ACTION_MOVE){       
int x= (int) event.getX();       

int y= (int) event.getY();        

tvShowDimen.setText("X坐标222:"+x+" ,Y坐标222:"+y);

//    }    

return super.onTouchEvent(event);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息