<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    咖啡伴侶

    呆在上海
    posts - 163, comments - 156, trackbacks - 0, articles - 2

    android GestureListener 手勢(shì) 多指縮放

    Posted on 2011-08-21 11:59 oathleo 閱讀(3242) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Android
    注意
    1.onDown 多指事件仍然響應(yīng)成單指
    2.onScroll滑動(dòng)時(shí)觸發(fā),e1只能獲得一個(gè)點(diǎn) ,而e2卻能獲得多點(diǎn)。(搞不清楚為什么怎么設(shè)計(jì))
    3.想在view上加 GestureListener
    可以使用下面的代碼:
    public class ViewerInnerTouchListener implements OnTouchListener {

        
    private GestureDetector gestureDetector;

        
    public ViewerInnerTouchListener(GAViewer viewer) {
            gestureDetector 
    = new GestureDetector(new GestureListener(viewer));
        }

        
    public boolean onTouch(View v, MotionEvent event) {
            gestureDetector.onTouchEvent(event);
            
    return true;
        }

    }

        setOnTouchListener(
    new ViewerInnerTouchListener(this));

    判斷手勢(shì):
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            
    if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                Log.i(
    "onFling""onFling");
                
    return true// Right to left
            } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                
    return false// Left to right
            }
            
    if (e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
                
    return false// Bottom to top
            } else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
                
    return false// Top to bottom
            }
            
    return false;
        }


    GestureListener 的幾個(gè)方法要理解
         //Touch down時(shí)觸發(fā),不論是touch (包括long) ,scroll
         public boolean onDown(MotionEvent e) {
         return false;
         }
        
         //Touch了還沒(méi)有滑動(dòng)時(shí)觸發(fā)
         //(與onDown,onLongPress比較
         //onDown只要Touch down一定立刻觸發(fā)。
         public void onShowPress(MotionEvent e) {
         }
        
         //Touch了不移動(dòng)一直Touch down時(shí)觸發(fā)
         //Touchdown后過(guò)一會(huì)沒(méi)有滑動(dòng)先觸發(fā)onShowPress再是onLongPress。
         public void onLongPress(MotionEvent e) {
         }
        
         //上面這兩個(gè)函數(shù)都是在touch down后又沒(méi)有滑動(dòng)(onScroll),又沒(méi)有長(zhǎng)按(onLongPress),然后Touchup時(shí)觸發(fā)。
         /**
         * 點(diǎn)擊一下非常快的(不滑動(dòng))Touchup: onDown->onSingleTapUp->onSingleTapConfirmed
         *
         點(diǎn)擊一下稍微慢點(diǎn)的(不滑動(dòng))Touchup:onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
         * 點(diǎn)擊longpress ,onScroll 時(shí) 不觸發(fā) onSingleTapUp
         */
         public boolean onSingleTapUp(MotionEvent e) {
         Log.i("onSingleTapUp", "onSingleTapUp");
         return false;
         }
        
         //Touch了滑動(dòng)時(shí)觸發(fā)
         public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
         float distanceY) {
         return true;
         }
        
         //Touch了滑動(dòng)一點(diǎn)距離后,up時(shí)觸發(fā)
         public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
         float velocityY) {
         return true;
         }
    主站蜘蛛池模板: 亚洲午夜精品一区二区公牛电影院 | 国产又粗又猛又爽又黄的免费视频| 99人中文字幕亚洲区| 黄色网站软件app在线观看免费| 色噜噜亚洲精品中文字幕 | 亚洲色大网站WWW永久网站| 美女视频黄的全免费视频网站| 亚洲成人午夜电影| 无人在线直播免费观看| 中中文字幕亚洲无线码| 啦啦啦在线免费视频| 国产精品亚洲专区无码唯爱网| 又黄又爽一线毛片免费观看| 亚州**色毛片免费观看| 亚洲AV无码第一区二区三区| 中文字幕在亚洲第一在线| 一区二区视频免费观看| 久久国产精品亚洲综合| 成人免费AA片在线观看| 综合一区自拍亚洲综合图区| 亚洲熟妇中文字幕五十中出| 久久久久久夜精品精品免费啦 | 亚洲色自偷自拍另类小说| 麻豆精品不卡国产免费看| 亚洲乱码日产精品BD在线观看| 97无码免费人妻超级碰碰碰碰 | 亚洲欧美成aⅴ人在线观看| 国产国产人免费视频成69大陆| 一级毛片免费在线播放| 亚洲高清日韩精品第一区| 在线看片人成视频免费无遮挡| 一级**爱片免费视频| 亚洲手机中文字幕| 亚洲精品国产日韩无码AV永久免费网| 国产在线播放线91免费| 亚洲五月丁香综合视频| 国产亚洲?V无码?V男人的天堂| 曰批视频免费40分钟试看天天| 久久精品国产亚洲AV未满十八| 国产偷v国产偷v亚洲高清| 久久久无码精品亚洲日韩蜜臀浪潮 |