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;
}
}
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>
相关文章推荐
- android菜鸟之路-事件分发机制总结(一)
- android学习笔记——LocalBroadcastReceiver简单学习
- Ionic项目中使用极光推送-android
- android support design widget 学习
- android学习笔记——SQLite简单应用及介绍
- android学习笔记——BroadcastReceiver广播接收器初学习
- android studio导jar包找不到类的解决方法
- android学习笔记——SharedPreferences数据存储
- android-事件分发:弹性滑动、滑动冲突等
- android学习笔记——android动画Animation的讲解
- android学习笔记——FileInputStream和FileOutputStream
- android应用框架搭建------BaseActivity
- Android布局详解之一:FrameLayout
- android学习笔记——onTouchEvent方法的使用
- android:process=":remote"属性解说
- android学习笔记——Bitmaps的使用(处理大图时防止OOM)
- Android——getSystemService
- 手把手带你画一个 时尚仪表盘 Android 自定义View
- 手把手带你画一个 时尚仪表盘 Android 自定义View
- 手把手带你画一个 时尚仪表盘 Android 自定义View