zoukankan      html  css  js  c++  java
  • Android:ViewFlipper实现左右滑动

    用ViewFlipper实现左右滑屏操作:

    1.注册ViewFilpper 

    2.滑动动画:

    slideLeftOut.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="400"/>
    </set>

    slideRightOut.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="400"/>
    </set>

    3.viewFilpper添加子view:

    viewFlipper.addView(mListView);
    viewFlipper.addView(mListView1);
    viewFlipper.addView(mListView2);

    子view监听onTouchEvent事件

    拦截子View的onTouchEvent事件 

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            LogUtil.info(TAG, "---------onTouchEvent----------");
            return mGesture.onTouchEvent(event);
        }

    4.监听屏幕手势

        //屏幕手势监听类
        class GestureListener 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();
                        return true;
                    } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                        viewFlipper.setInAnimation(slideRightIn);
                        viewFlipper.setOutAnimation(slideRightOut);
                        viewFlipper.showPrevious();
                        return true;
                    }
                } catch (Exception e) {
                    // nothing
                    e.printStackTrace();
                }
                return false;
            }
        }
  • 相关阅读:
    Hamming Distance
    变量
    Jupyter Notebook 快捷键使用指南
    XPath使用总结
    selenium调用webdriver异常
    漏洞挖掘 | 远程WWW服务支持TRACE请求
    漏洞挖掘 | 点击劫持
    漏洞挖掘 | 目录浏览漏洞
    漏洞挖掘 | 弱口令漏洞
    浅谈Linux下/etc/passwd文件
  • 原文地址:https://www.cnblogs.com/gongcb/p/3056559.html
Copyright © 2011-2022 走看看