Android 講義第二版 ViewSwitcher + GestureDetector 練習

來源:互聯網
上載者:User

標籤:

添加手勢監聽:

1     GestureDetector detector;// 手勢偵聽
View Code
1 detector = new GestureDetector(getApplicationContext(),2                 new myGestureListener());
View Code

手勢偵聽 在 onFling 中指定螢幕滑動效果和展示映像:

 1 class myGestureListener implements OnGestureListener { 2         // 當觸碰事件按下時觸發該方法 3         @Override 4         public boolean onDown(MotionEvent event) { 5             return false; 6         } 7  8         // 使用者在觸控螢幕上拖過時觸發該方法 9         @Override10         public boolean onFling(MotionEvent event1, MotionEvent event2,11                 float velocityX, float velocityY) {12             ((GridView) viewSwitcher.getNextView()).setAdapter(adapter);13             if (event2.getX() - event1.getX() > FLIP_DISTANCE) {14                 if (screenNo > 0) {15                     screenNo--;16                     // 添加螢幕動畫轉場效果17                     viewSwitcher.setInAnimation(animations[0]);18                     viewSwitcher.setInAnimation(animations[3]);19                     viewSwitcher.showPrevious();20                     return true;21                 } else {22                     Toast.makeText(getApplicationContext(), "已無更多頁面",23                             Toast.LENGTH_LONG).show();24                 }25             } else {26                 if (screenNo < screenCount - 1) {27                     screenNo++;28                     viewSwitcher.setInAnimation(animations[1]);29                     viewSwitcher.setInAnimation(animations[2]);30                     viewSwitcher.showNext();31                     return true;32                 } else {33                     Toast.makeText(getApplicationContext(), "已無更多頁面",34                             Toast.LENGTH_LONG).show();35                 }36             }37             return false;38         }39 40         // 使用者在螢幕上長按時觸發該方法41         @Override42         public void onLongPress(MotionEvent event) {43 44         }45 46         // 使用者在螢幕上滾動時觸發該方法47         @Override48         public boolean onScroll(MotionEvent event1, MotionEvent event2,49                 float velocityX, float velocityY) {50             return false;51         }52 53         // 使用者在觸控螢幕上按下,而且還未移動和鬆開時觸發該方法54         @Override55         public void onShowPress(MotionEvent arg0) {56 57         }58 59         // 使用者在觸屏上的輕擊事件將觸發該方法60         @Override61         public boolean onSingleTapUp(MotionEvent arg0) {62             return false;63         }64 65     }
View Code

進入的第一個介面展示 代碼:

 1 public void next(View v) { 2         if (screenNo == -1) { 3             screenNo++; 4             ((GridView) viewSwitcher.getNextView()).setAdapter(adapter); 5             viewSwitcher.showNext(); 6         } else { 7             Toast.makeText(getApplicationContext(), "已無更多頁面", Toast.LENGTH_LONG) 8                     .show(); 9         }10     }
View Code

定義BaseAdapter:

 1 private BaseAdapter adapter = new BaseAdapter() { 2         @Override 3         public long getItemId(int position) { 4             return position; 5         } 6  7         @Override 8         public DataItem getItem(int position) { 9             return total.get(screenNo * Number_Per_Screen + position);10         }11 12         @Override13         public int getCount() {14             if (screenNo == screenCount - 115                     && total.size() % Number_Per_Screen != 0) {16                 return total.size() % Number_Per_Screen;17             }18             return Number_Per_Screen;19         }20 21         @Override22         public View getView(int position, View convertView, ViewGroup parent) {23             View view = convertView;24             if (convertView == null) {25                 view = layoutInflater.inflate(R.layout.labelicon, null);26             }27             ImageView imageview = (ImageView) view.findViewById(R.id.imageview);28             imageview.setImageDrawable(getItem(position).drawable);29             TextView textView = (TextView) view.findViewById(R.id.textview);30             textView.setText(getItem(position).DataName);31             return view;32         }33     };
View Code

此處只是對 瘋狂Android 講義 中ViewSwitcher 的 手勢 添加 做的一個小demo,本人處於初學階段,如有不對的地方,請各位多多指正!!

Android 講義第二版 ViewSwitcher + GestureDetector 練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.