android 이벤트 분석(3) - 분석할 때 사용하는 코드

4580 단어
이 터치 사건을 분석할 때 사용된 코드가 여기에 첨부돼 있어 도움이 되길 바랍니다.
MainActivity:
package cn.yj3g.TL24_Event_test;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class TL24_Event_testActivity extends Activity {
    
	private LinearLayout outLayout;
	private LinearLayout innerLayout;
	private ImageView imageView;
	private TextView textView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        outLayout = (LinearLayout) findViewById(R.id.out_layout);
        
        innerLayout = (LinearLayout) findViewById(R.id.inner_layout);
        imageView = (ImageView) findViewById(R.id.i_view);
        textView = (TextView) findViewById(R.id.t_view);
        textView.setText(R.string.text2);
        
        outLayout.setOnTouchListener(new View.OnTouchListener() {
			
			public boolean onTouch(View v, MotionEvent event) {
				int action = event.getAction();
				switch (action) {
				case MotionEvent.ACTION_DOWN:
					Log.v("TAG", "outLayout down");
					break;
				case MotionEvent.ACTION_MOVE:
					Log.v("TAG", "outLayout move");
					break;
				case MotionEvent.ACTION_UP:
					Log.v("TAG", "outLayout up");
					break;

				default:
					break;
				}
				return false;
			}
		});
        
        innerLayout.setOnTouchListener(new View.OnTouchListener() {
			
			public boolean onTouch(View v, MotionEvent event) {
				int action = event.getAction();
				switch (action) {
				case MotionEvent.ACTION_DOWN:
					Log.v("TAG", "innerLayout down");
					//return true;
					break;
				case MotionEvent.ACTION_MOVE:
					Log.v("TAG", "innerLayout move");
					//return true;
					break;
				case MotionEvent.ACTION_UP:
					Log.v("TAG", "innerLayout up");
					break;

				default:
					break;
				}
				return false;
			}
		});
        
        imageView.setOnTouchListener(new View.OnTouchListener() {
			
			public boolean onTouch(View v, MotionEvent event) {
				int action = event.getAction();
				switch (action) {
				case MotionEvent.ACTION_DOWN:
					Log.v("TAG", "imageView down");
					Log.v("TAG", "imageView x="+event.getX()+" rawX="+event.getRawX());
					//return true; //   
					break;
				case MotionEvent.ACTION_MOVE:
					Log.v("TAG", "imageView move");
					break;
				case MotionEvent.ACTION_UP:
					Log.v("TAG", "imageView up");
					break;
					//return true;
				default:
					break;
				}
				return false;
			}
		});
        
        textView.setOnTouchListener(new View.OnTouchListener() {
			
			public boolean onTouch(View v, MotionEvent event) {
				int action = event.getAction();
				switch (action) {
				case MotionEvent.ACTION_DOWN:
					Log.v("TAG", "textView down");
					break;
				case MotionEvent.ACTION_MOVE:
					Log.v("TAG", "textView move");
					break;
				case MotionEvent.ACTION_UP:
					Log.v("TAG", "textView up");
					//return true;
					break;

				default:
					break;
				}
				return false;
			}
		});      
    }

    
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
    	int action = ev.getAction();
		switch (action) {
		case MotionEvent.ACTION_DOWN:
			Log.v("TAG", "activity dispatch down");
			return true;
			//break;
		case MotionEvent.ACTION_MOVE:
			Log.v("TAG", "activity dispatch move");
			break;
		case MotionEvent.ACTION_UP:
			Log.v("TAG", "activity dispatch up");
			break;

		default:
			break;
		}
    	return super.dispatchTouchEvent(ev);
    }
    
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		
		int action = event.getAction();
		switch (action) {
		case MotionEvent.ACTION_DOWN:
			Log.v("TAG", "activity down");
			break;
		case MotionEvent.ACTION_MOVE:
			Log.v("TAG", "activity move");
			break;
		case MotionEvent.ACTION_UP:
			Log.v("TAG", "activity up");
			break;

		default:
			break;
		}
		return super.onTouchEvent(event);
	}
}

코드 다운로드 주소(CSDN 리소스, 포인트 없음)를 첨부합니다.
/*얌마, 올렸는데 N이 안 뜨네.다운로드 링크가 안 보여요. 다음에 추가할게요...
다운로드 링크를 트위닝하려면 다음과 같이 하십시오.http://download.csdn.net/detail/badboy1110/3635521

좋은 웹페이지 즐겨찾기