一步一步学android之事件篇——触摸事件

触摸事件顾名思义就是触摸手机屏幕触发的事件,当用户触摸添加了触摸事件的View时,就是执行OnTouch()方法进行处理,下面通过一个动态获取坐标的例子来学习OnTouchListener事件,效果如下:

一步一步学android之事件篇——触摸事件一步一步学android之事件篇——触摸事件一步一步学android之事件篇——触摸事件

main.xml:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">



    <TextView

        android:id="@+id/show"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:textColor="#ff00ff"

        android:textSize="20sp"

        android:text="实时显示坐标" />



</LinearLayout>


MainActivity.java:

 

 

package com.example.onkeylistenerdemo;



import android.app.Activity;

import android.os.Bundle;

import android.util.EventLog.Event;

import android.view.MotionEvent;

import android.view.View;

import android.widget.LinearLayout;

import android.widget.TextView;



public class MainActivity extends Activity {

	

	private TextView show = null;

	private LinearLayout linearLayout = null;

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		initView();

	}



	private void initView(){

		show = (TextView)super.findViewById(R.id.show);

		linearLayout = (LinearLayout)super.findViewById(R.id.LinearLayout1);

		linearLayout.setOnTouchListener(new View.OnTouchListener() {

			

			@Override

			public boolean onTouch(View v, MotionEvent event) {

				// TODO Auto-generated method stub

				switch(event.getAction()){

				case MotionEvent.ACTION_DOWN:

					System.out.println("---action down-----");

					show.setText("起始位置为:"+"("+event.getX()+" , "+event.getY()+")");

					break;

				case MotionEvent.ACTION_MOVE:

					System.out.println("---action move-----");

					show.setText("移动中坐标为:"+"("+event.getX()+" , "+event.getY()+")");

					break;

				case MotionEvent.ACTION_UP:

					System.out.println("---action up-----");

					show.setText("最后位置为:"+"("+event.getX()+" , "+event.getY()+")");

				}

				return true;

			}

		});

	}

}


我在代码中加了输出,大家可以在logcat中清楚看见是如何执行的,我这里也不重复说明,今天就到这里了。

 

 

你可能感兴趣的:(android)