在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Android手勢學習之單點手勢

            Android手勢學習之單點手勢

            作者: 時間:2016-10-08 來源:網(wǎng)絡 收藏

            04import android.os.Bundle;

            05import android.util.Log;

            06import android.view.GestureDetector;

            07import android.view.GestureDetector.OnGestureListener;

            08import android.view.MotionEvent;

            09import android.view.View;

            10import android.view.View.OnTouchListener;

            11import android.view.animation.AnimationUtils;

            12import android.widget.ImageView;

            13import android.widget.Toast;

            14import android.widget.ViewFlipper;

            15

            16public class SlideAndGestureActivity extends Activity {

            17 private ViewFlipper mFlipper;

            18 private GestureDetector mDetector;

            19 /** Called when the activity is first created. */

            20 @Override

            21 public void onCreate(Bundle savedInstanceState) {

            22 super.onCreate(savedInstanceState);

            23 setContentView(R.layout.slide);

            24

            25 mDetector = new GestureDetector(getApplicationContext(),new FlingListener());

            26 mFlipper = (ViewFlipper )findViewById(R.id.viewFlipper1);

            27

            28 mFlipper.addView(addTextView(R.drawable.one));

            29 mFlipper.addView(addTextView(R.drawable.two));

            30 mFlipper.addView(addTextView(R.drawable.three));

            31 mFlipper.addView(addTextView(R.drawable.four));

            32 mFlipper.addView(addTextView(R.drawable.five));

            33

            34 }

            35

            36 private View addTextView(int resId){

            37 ImageView view = new ImageView(this);

            38 view.setImageResource(resId);

            39 return view;

            40 }

            41

            42 @Override

            43 public boolean onTouchEvent(MotionEvent event) {

            44 return mDetector.onTouchEvent(event);

            45 }

            46

            47 private class FlingListener extends GestureDetector.SimpleOnGestureListener{

            48 @Override

            49 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

            50 float velocityY) {

            51 String msg = e1:+e1.getX()+,+e1.getY()+e2:+e2.getX()+,+e2.getY();

            52 Log.i(MotionSlide, msg);

            53 if (e1.getX() - e2.getX() > 120) {

            54 mFlipper.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_left_in));

            55 mFlipper.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_left_out));

            56 mFlipper.showNext();

            57 return true;

            58 } else if (e1.getX() - e2.getX() -120) {

            59 mFlipper.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_right_in));

            60 mFlipper.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_right_out));

            61 mFlipper.showPrevious();

            62 return true;

            63 }

            64 return false;

            65 }

            66

            67 }

            68

            69}

            在實際的項目開發(fā)中會遇到這樣一樣問題。

            比如。上面 例子添加的ImageView默認也許不處理事件。所以 可以 正常的滑動。

            但是在我的實際的開發(fā)中,的發(fā)現(xiàn)如ViewFlipper上面有一個GridView,GridView上面排列有Button.然后滑動手勢

            的事件就不會傳播到ViewFlipper中去啊。于是我開始是在GridView上面 設置 一個margin

            在margin區(qū)域里滑動事件 就會傳遞給ViwFlipper。(嚴格來說應該是mDetecotor.onTouchEvent()中去。

            然后我就在想這個事件 傳播的問題,然后我想到因為其實主要調(diào)用mDetecotor的時候,

            也是在Activity中的OnTouchEvent(MotionEvent)方法 中。

            中將這個MotionEvent事件以這樣return mDetector.onTouchEvent(event)方法處理返回 。

            于是 想在button中事件中的ACTION_MOVE中也調(diào)用mDetector.OnTouchEvent()

            但是結(jié)果 不行。后來我就不區(qū)分ACTION_MOVE等等了。

            于是,最后,我在對button和gridView做了如下處理。

            1button.setOnTouchListener(new OnTouchListener() {

            2 @Override

            3 public boolean onTouch(View v, MotionEvent event) {

            4 return mDetector.onTouchEvent(event);

            5

            6 }

            7});

            1gridView.setOnTouchListener(new OnTouchListener() {

            2 @Override

            3 public boolean onTouch(View v, MotionEvent event) {

            4 return mDetector.onTouchEvent(event);

            5 }

            6});

            我想,因為Fliing這樣事件不僅僅是ACTION_MOVE他還有開始的OnDown等等一系列事件組合起來的。


            上一頁 1 2 下一頁

            關鍵詞:

            評論


            相關推薦

            技術專區(qū)

            關閉