版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年抓娃娃机乐园行业深度调研及发展战略咨询报告
- 2025-2030年复古珠宝首饰复刻行业深度调研及发展战略咨询报告
- 2025-2030年即食豆腐皮企业制定与实施新质生产力战略研究报告
- 2025-2030年商务快餐洽谈区行业深度调研及发展战略咨询报告
- 2025-2030年即食鸡肉块行业跨境出海战略研究报告
- 2025-2030年商用节能煮蛋机行业跨境出海战略研究报告
- 2025-2030年手工巧克力涂层坚果行业跨境出海战略研究报告
- 2025-2030年厨房防油贴纸企业制定与实施新质生产力战略研究报告
- 2025-2030年厨房餐具消毒与存放管理机器人企业制定与实施新质生产力战略研究报告
- 2025-2030年增肌塑形添加剂企业制定与实施新质生产力战略研究报告
- GB/T 26189.2-2024工作场所照明第2部分:室外作业场所的安全保障照明要求
- 新教科版一年级科学下册第一单元《身边的物体》全部课件(共7课时)
- 2025年中国水解聚马来酸酐市场调查研究报告
- 高考百日誓师动员大会
- 2024年北京东城社区工作者招聘笔试真题
- 七上 U2 过关单 (答案版)
- 2024年贵银金融租赁公司招聘笔试参考题库附带答案详解
- 杭州市主城区声环境功能区划分图
- 新概念英语第二册1-Lesson29(共127张PPT)课件
- 中考语文十大专题总复习资料
- 汽车驾驶员专业竞赛实施方案
评论
0/150
提交评论