Androidにおけるタッチイベント処理を全体的に把握する


  • 声明:転載は出典を明記してください.http://blog.csdn.net/Hello_Chillax/articale/detail/45824999
  • より多くの素晴らしいものがあります.訪問してください.http://blog.csdn.net/hello_chillaxありがとうございます.
    まずいくつかの関数を見ます.Androidのタッチイベントの処理というと、多くの人はすぐにいくつかの頭痛の関数を思い出します.ここに挙げて、あなたの神経を刺激します.
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            return super.onTouchEvent(event);
        }
        @Override
        public boolean dispatchTouchEvent(MotionEvent ev) {
            return super.dispatchTouchEvent(ev);
        }
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            return super.onInterceptTouchEvent(ev);
        }
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return false;
        }
    うん、今日はこの四つの関数の役割と呼出関係を見て、タッチイベントの処理メカニズムを整理します.
    一.まずその中の二つを解決します.
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            return super.onTouchEvent(event);
        }
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            return super.onInterceptTouchEvent(ev);
        }
    1.1まず明確にすると、Androidのイベントの配布と処理はトップダウン、すなわちタッチイベントの最初の一回は必ず最外層のViewに送られます.1.2ここで例を挙げます.窓の複数のView Groupが大家族を構成していると仮定します.その中で一番外側の階のView世代が一番長く、一番奥の階のView世代が一番小さいと仮定して、タッチイベントイベントを一つのリンゴにたとえます.もし事件が起こったら、次のようなことが起こります.
    リンゴの転送過程:
    おじいさん――お父さん――孫さん.
    おじいさんの世代がリンゴを食べたら、私たちはこの事件を消費すると言います.
    下図を見てください
    总体把握Android中的触摸事件处理_第1张图片
    詳しく分析します.总体把握Android中的触摸事件处理_第2张图片.
    ここまでは、Androidにおけるメッセージ伝達の仕組みを全体的に把握してきたのではないかと思いますが、もう少し詳しく調べてみます.