首页 > 代码库 > Android使用GestureDetector实现手势滑动效果
Android使用GestureDetector实现手势滑动效果
直接看实例:
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘package com.example.gesturedetector; import android.os.Bundle; import android.app.Activity; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.Menu; import android.view.MotionEvent; import android.widget.Toast; public class MainActivity extends Activity implements OnGestureListener { private GestureDetector mGestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGestureDetector = new GestureDetector(this, this); } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub mGestureDetector.onTouchEvent(event); return super.onTouchEvent(event); } @Override public boolean onDown(MotionEvent arg0) { // TODO Auto-generated method stub //Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onFling(MotionEvent startEvent, MotionEvent endEvent, float velocityX, float velocityY) { // TODO Auto-generated method stub if (startEvent.getY() - endEvent.getY() > 100) { Toast.makeText(this, "手势向上滑动", Toast.LENGTH_SHORT).show(); return true; } else if (startEvent.getY() - endEvent.getY() < -100) { Toast.makeText(this, "手势向下滑动", Toast.LENGTH_SHORT).show(); return true; } else if (startEvent.getX() - endEvent.getX() > 100) { Toast.makeText(this, "手势向左滑动", Toast.LENGTH_SHORT).show(); return true; } else if (startEvent.getX() - endEvent.getX() < -100) { Toast.makeText(this, "手势向右滑动", Toast.LENGTH_SHORT).show(); return true; } return false; } @Override public void onLongPress(MotionEvent arg0) { // TODO Auto-generated method stub //Toast.makeText(this, "onLongPress ", Toast.LENGTH_SHORT).show(); } @Override public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) { // TODO Auto-generated method stub //Toast.makeText(this, "onScroll", Toast.LENGTH_SHORT).show(); return false; } @Override public void onShowPress(MotionEvent arg0) { // TODO Auto-generated method stub //Toast.makeText(this, "onShowPress", Toast.LENGTH_SHORT).show(); } @Override public boolean onSingleTapUp(MotionEvent arg0) { // TODO Auto-generated method stub //Toast.makeText(this, "onSingleTapUp", Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }事件解释:
1. onDown(MotionEvent e):down事件; 2. onSingleTapUp(MotionEvent e):一次点击up事件; 3. onShowPress(MotionEvent e):down事件发生而move或则up还没发生前触发该事件; 4. onLongPress(MotionEvent e):长按事件; 5. onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY):滑动手势事件; 6. onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY):在屏幕上拖动事件。
Android使用GestureDetector实现手势滑动效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。