Android侦测滑动手势方法_第1页
Android侦测滑动手势方法_第2页
Android侦测滑动手势方法_第3页
Android侦测滑动手势方法_第4页
Android侦测滑动手势方法_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android滑动手势侦测方法介绍时间:2010-12-01 09:05 来源:51 收藏 复制分享 共有评论(0)条在Android手机操作系统中支持各种滑动手势的操作。我们在这里为大家介绍的方法主要就是针对这些手势如何能在Android平台中侦测出来。下面就让我们大家一起来看看Android滑动手势具体的识别方法吧。Android Activity跳转相关操作技巧分享Android创建sdcard详细图解Android系统信息查看方法详解Android数据库相关代码解读Android拍照实现方式概述Android SDK提供了一个listener类来侦测各种不同的手势:Sim

2、pleOnGestureListener. 你只需要实现自己所关心的手势就可以了.Swipe在android里面是叫Fling首先创建自己的一个手势detector类:class MyGestureDetector extends SimpleOnGestureListener Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 一个Android滑动手势有几个特征, 比如是在x或者y轴上近乎直线的划动, 中途路径的偏差不能太大, 而且划动需要一定的速

3、度, 所以我们定义几个定量:private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;然后在onFling方法中, 判断是不是一个合理的swipe动作:if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) vie

4、wFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper

5、.showPrevious(); if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRES

6、HOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); 这里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:viewFlipper = (ViewFlipper)findViewById(R.id.flipper); slideLeftIn = AnimationUtils

7、.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);自定义的animation可以查看具体的XML, 比如从左边进来的

8、一个动画: 当然最后不要忘记在你的Activity中override onTouch方法来获取手势action:Override public boolean onTouchEvent(MotionEvent event) if (gestureDetector.onTouchEvent(event) return true; else return false; Android滑动手势的相关识别方法就为大家介绍到这里。Android滑动手势侦测方法介绍时间:2010-12-01 09:05 来源:51 收藏 复制分享 共有评论(0)条在Android手机操作系统中支持各种滑动手

9、势的操作。我们在这里为大家介绍的方法主要就是针对这些手势如何能在Android平台中侦测出来。下面就让我们大家一起来看看Android滑动手势具体的识别方法吧。Android Activity跳转相关操作技巧分享Android创建sdcard详细图解Android系统信息查看方法详解Android数据库相关代码解读Android拍照实现方式概述Android SDK提供了一个listener类来侦测各种不同的手势:SimpleOnGestureListener. 你只需要实现自己所关心的手势就可以了.Swipe在android里面是叫Fling首先创建自己的一个手势detector类:clas

10、s MyGestureDetector extends SimpleOnGestureListener Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 一个Android滑动手势有几个特征, 比如是在x或者y轴上近乎直线的划动, 中途路径的偏差不能太大, 而且划动需要一定的速度, 所以我们定义几个定量:private static final int SWIPE_MIN_DISTANCE = 120; private static final in

11、t SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;然后在onFling方法中, 判断是不是一个合理的swipe动作:if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFli

12、pper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE

13、_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(sli

14、deRightOut); viewFlipper.showPrevious(); 这里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:viewFlipper = (ViewFlipper)findViewById(R.id.flipper); slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(

15、this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);自定义的animation可以查看具体的XML, 比如从左边进来的一个动画: 当然最后不要忘记在你的Activity中override onTouch方法来获取手势action:Override public boolean onTouchE

16、vent(MotionEvent event) if (gestureDetector.onTouchEvent(event) return true; else return false; Android滑动手势的相关识别方法就为大家介绍到这里。android滑动分页 实现原理通过手指的滑动,判断数据大小然后动态改变数据底部的加载是一个viewimport android.app.ListActivity;import android.os.Bundle;import android.os.Handler;import android.view.Gravity;import android.

17、view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.AbsListView.OnScrollListener;import an

18、droid.widget.LinearLayout.LayoutParams;public class Test extends ListActivity implements OnScrollListener Aleph0 adapter = new Aleph0(); int lastItem = 0; int mProgressStatus = 0; private Handler mHandler = new Handler(); ProgressBar progressBar; protected void onCreate(Bundle savedInstanceState) su

19、per.onCreate(savedInstanceState); LinearLayout searchLayout = new LinearLayout(this); searchLayout.setOrientation(LinearLayout.HORIZONTAL); progressBar = new ProgressBar(this); progressBar.setPadding(0, 0, 15, 0); searchLayout.addView(progressBar,new LinearLayout.LayoutParams( LinearLayout.LayoutPar

20、ams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); TextView textView = new TextView(this); textView.setText(加载中.); textView.setGravity(Gravity.CENTER_VERTICAL); searchLayout.addView(textView,new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL

21、_PARENT ); searchLayout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout(this); loadingLayout.addView(searchLayout,new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); loadingLayout.setGravity(Gravity.CENTER); getLi

22、stView().addFooterView(loadingLayout); / Start lengthy operation in a background thread/ new Thread(new Runnable() / public void run() / while (mProgressStatus = totalCount; if (loadMore) adapter.count += visibleCount; / or any other amount adapter.notifyDataSetChanged(); public void onScrollStateCh

23、anged(AbsListView v, int s) class Aleph0 extends BaseAdapter int count = 40 ; /* starting amount */ public int getCount() return count; public Object getItem( int pos) return pos; public long getItemId( int pos) return pos; public View getView( int pos, View v, ViewGroup p) TextView view = new TextV

24、iew(EndLessActivity. this ); view.setText( entry + pos); return view; listview下部是按钮控制:package com.ScrollListView;import Android.app.ListActivity;import Android.os.Bundle;import Android.view.Gravity;import Android.view.View;import Android.view.ViewGroup;import Android.widget.AbsListView;import Androi

25、d.widget.BaseAdapter;import Android.widget.Button;import Android.widget.LinearLayout;import Android.widget.ProgressBar;import Android.widget.TextView;import Android.widget.AbsListView.OnScrollListener;public class EndLessActivity extends ListActivity Aleph0 adapter = new Aleph0(); int mProgressStatu

26、s = 0 ; protected void onCreate(Bundle savedInstanceState) super .onCreate(savedInstanceState); LinearLayout searchLayout = new LinearLayout( this ); searchLayout.setOrientation(LinearLayout.HORIZONTAL); Button textView = new Button( this ); textView.setText( 加载中. ); textView.setGravity(Gravity.CENT

27、ER_VERTICAL); searchLayout.addView(textView, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT ); searchLayout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout( this ); loadingLayout.addView(searchLayout, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); loadingLayout.setGravity

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论