Android实现上下滑动效果.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android实现上下滑动效果

Android实现上下滑动效果1.?概念:比如用Scroll手势在浏览器中滚屏,用Fling在阅读器中翻页等。在在Android系统中,手势的识别是通过?GestureDetector.OnGestureListener接口来实现的。我们先来明确一些概念:(1)?首先:Android的事件处理机制是基于Listener(监听器)来实现的,比我们今天所说的触摸屏相关的事件,就是通过?onTouchListener。(2)?其次:所有View的子类都可以通过setOnTouchListener()、setOnKeyListener()?等方法来添加对某一类事件的监听器。(3)?第三:Listener一般会以Interface(接口)的方式来提供,其中包含一个或多个abstract(抽象)方法,我们需要实现这些方法来完成onTouch()、onKey()等等的操作。2.?实践:下面我们实现一个手触摸滑动的效果。编写一个类,继承activity实现OnGestureListener接口。public?class?Weight?extends?Activity?implements?OnGestureListener {?private?ViewFlipper?flipper;?private?GestureDetector?detector;?protected?void?onCreate(Bundle savedInstanceState) {?super.onCreate(savedInstanceState);?flipper?=?new?ViewFlipper(this);?detector?=?new?GestureDetector(this);?LinearLayout lin =?new?LinearLayout(this);?lin.setLayoutParams(newLinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));?lin.setOrientation(LinearLayout.VERTICAL);?addTxt(lin);?this.addContentView(lin,?new?ViewGroup.LayoutParams(200 ,200));?}?public?void?addTxt(ViewGroup view)?{?TextView txt1 =?new?TextView(this); txt1.setLayoutParams(new?LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));?txt1.setText(11);?...txt2和txt3一样设定?flipper.addView(txt1);?flipper.addView(txt2);?flipper.addView(txt3);?view.addView(flipper);?}?/**?*?重写GestureDeterctor类里面的onTouchEvent方法?*/?public?boolean?onTouchEvent(MotionEvent event) {?Log.i(golf, onTouch);?return?this.detector.onTouchEvent(event);?}?.....?public?boolean?onFling(MotionEvent e1, MotionEvent e2,?float?velocityX,?float?velocityY) {?if?(e1.getY() e2.getY())??this.flipper.showNext();?else?if?(e1.getY() e2.getY())??this.flipper.showPrevious();?else?return?false;?return?true;?}}这里面用到了两个对象,ViewFlipper和GestureDetector。我们先说说这ViewFilpper继承自FrameLayout、类似于一个容器,它有一个优点每次只能显示一个view,利用这个优点,我们可以实现类似的翻页的效果。事先要把View都添加到ViewFlipper中去,代码如下:TextView txt1 =?new?TextView(this);?txt1.setLayoutParams(new?LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTE

文档评论(0)

2232文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档