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

android手势操作滑动效果触摸屏事件处理

2016-01-06 15:45 429 查看
请看这篇博客:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/0818/356.html

package com.james.gesturedemo;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnTouchListener,OnGestureListener{
private TextView helloWorld;
private GestureDetector gestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helloWorld = (TextView) findViewById(R.id.id_tv_helloword);
helloWorld.setOnTouchListener(this);
helloWorld.setLongClickable(true);
gestureDetector = new GestureDetector(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}

@Override
public boolean onDown(MotionEvent e) {
Log.d("debug", "onDown用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发");
return false;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Log.d("debug", "onFling用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发");
return false;
}

@Override
public void onLongPress(MotionEvent e) {
Log.d("debug", "onLongPress用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发");

}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Log.d("debug", "onScroll用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发 ");
return false;
}

@Override
public void onShowPress(MotionEvent e) {
Log.d("debug", "onShowPress用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发 ,注意和onDown()的区别,强调的是没有松开或者拖动的状态");

}

@Override
public boolean onSingleTapUp(MotionEvent e) {
Log.d("debug", "onSingleTapUp用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发");
return false;
}

}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:id="@+id/id_tv_helloword"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />

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