android – MyGestureDetector扩展了SimpleOnGestureListener

android – MyGestureDetector扩展了SimpleOnGestureListener,第1张

概述我正在实现一个扩展SimpleOnGestureListener的MyGestureDetector.我从 http://www.codeshogun.com/blog/tag/view-flipper/借用了这个类,允许在ViewFlipper中进行滑动 *** 作.我无法在模拟器上运行.有什么建议? 以下是所有代码: main.java import android.app.Activity;imp 我正在实现一个扩展SimpleOnGestureListener的MyGestureDetector.我从 http://www.codeshogun.com/blog/tag/view-flipper/借用了这个类,允许在VIEwFlipper中进行滑动 *** 作.我无法在模拟器上运行.有什么建议?

以下是所有代码:

main.java

import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.GestureDetector;import androID.vIEw.KeyEvent;import androID.vIEw.MotionEvent;import androID.vIEw.VIEw;import androID.vIEw.GestureDetector.SimpleOnGestureListener;import androID.vIEw.animation.Animation;import androID.vIEw.animation.AnimationUtils;import androID.webkit.WebVIEw;import androID.Widget.VIEwFlipper;public class main extends Activity {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;private GestureDetector gestureDetector;VIEw.OntouchListener gestureListener;private Animation slIDeleftIn;private Animation slIDeleftOut;private Animation slIDeRightIn;private Animation slIDeRightOut;private VIEwFlipper vIEwFlipper;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.main);    // ---------------------------------Sets Swipe Animation to Next VIEw -->           vIEwFlipper = (VIEwFlipper)findVIEwByID(R.ID.AC4313);    slIDeleftIn = AnimationUtils.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);    gestureDetector = new GestureDetector(new MyGestureDetector());    gestureListener = new VIEw.OntouchListener() {        public boolean ontouch(VIEw v,MotionEvent event) {            if (gestureDetector.ontouchEvent(event)) {                return true;            }            return false;        }    };     }class MyGestureDetector extends SimpleOnGestureListener {    @OverrIDe    public boolean onFling(MotionEvent e1,MotionEvent e2,float veLocityX,float veLocityY) {        try {            if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)                return false;            // right to left swipe            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_THRESHolD_VELociTY) {                vIEwFlipper.setInAnimation(slIDeRightIn);                vIEwFlipper.setoutAnimation(slIDeRightOut);                vIEwFlipper.showPrevIoUs();            }        } catch (Exception e) {            // nothing        }        return false;    }}    @OverrIDe // ------------------------------ Catch the Gesture Event by OverrIDing ontouch() method: -->public boolean ontouchEvent(MotionEvent event) {    if (gestureDetector.ontouchEvent(event))        return true;    else        return false;}

动画* .xml的:

<?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID">    <translate androID:fromXDelta="100%p" androID:toXDelta="0" androID:duration="800"/></set>
解决方法 我认为问题是你没有覆盖OnDown事件.将此代码段添加到MyGestureDetector类中,它应该可以正常工作.
@OverrIDepublic boolean onDown(MotionEvent e) {    return true;        }

onDown事件默认返回false,每个手势都以onDown开头,因此你的onFling事件不会触发.

伊什特万

总结

以上是内存溢出为你收集整理的android – MyGestureDetector扩展了SimpleOnGestureListener全部内容,希望文章能够帮你解决android – MyGestureDetector扩展了SimpleOnGestureListener所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1136286.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存