




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Android滑動手勢偵測方法介紹時間:2010-12-01 09:05 來源:51 收藏 復制分享 共有評論(0)條在Android手機操作系統(tǒng)中支持各種滑動手勢的操作。我們在這里為大家介紹的方法主要就是針對這些手勢如何能在Android平臺中偵測出來。下面就讓我們大家一起來看看Android滑動手勢具體的識別方法吧。Android Activity跳轉(zhuǎn)相關(guān)操作技巧分享Android創(chuàng)建sdcard詳細圖解Android系統(tǒng)信息查看方法詳解Android數(shù)據(jù)庫相關(guān)代碼解讀Android拍照實現(xiàn)方式概述Android SDK提供了一個listener類來偵測各種不同的手勢:Sim
2、pleOnGestureListener. 你只需要實現(xiàn)自己所關(guān)心的手勢就可以了.Swipe在android里面是叫Fling首先創(chuàng)建自己的一個手勢detector類:class MyGestureDetector extends SimpleOnGestureListener Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 一個Android滑動手勢有幾個特征, 比如是在x或者y軸上近乎直線的劃動, 中途路徑的偏差不能太大, 而且劃動需要一定的速
3、度, 所以我們定義幾個定量:private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;然后在onFling方法中, 判斷是不是一個合理的swipe動作:if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) vie
4、wFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper
5、.showPrevious(); if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRES
6、HOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); 這里的viewFlipper是含有多個view的一個container, 可以很方便的調(diào)用prev/next view, 加上animation動畫, 可以達到一些不錯的效果:viewFlipper = (ViewFlipper)findViewById(R.id.flipper); slideLeftIn = AnimationUtils
7、.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);自定義的animation可以查看具體的XML, 比如從左邊進來的
8、一個動畫: 當然最后不要忘記在你的Activity中override onTouch方法來獲取手勢action:Override public boolean onTouchEvent(MotionEvent event) if (gestureDetector.onTouchEvent(event) return true; else return false; Android滑動手勢的相關(guān)識別方法就為大家介紹到這里。Android滑動手勢偵測方法介紹時間:2010-12-01 09:05 來源:51 收藏 復制分享 共有評論(0)條在Android手機操作系統(tǒng)中支持各種滑動手
9、勢的操作。我們在這里為大家介紹的方法主要就是針對這些手勢如何能在Android平臺中偵測出來。下面就讓我們大家一起來看看Android滑動手勢具體的識別方法吧。Android Activity跳轉(zhuǎn)相關(guān)操作技巧分享Android創(chuàng)建sdcard詳細圖解Android系統(tǒng)信息查看方法詳解Android數(shù)據(jù)庫相關(guān)代碼解讀Android拍照實現(xiàn)方式概述Android SDK提供了一個listener類來偵測各種不同的手勢:SimpleOnGestureListener. 你只需要實現(xiàn)自己所關(guān)心的手勢就可以了.Swipe在android里面是叫Fling首先創(chuàng)建自己的一個手勢detector類:clas
10、s MyGestureDetector extends SimpleOnGestureListener Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 一個Android滑動手勢有幾個特征, 比如是在x或者y軸上近乎直線的劃動, 中途路徑的偏差不能太大, 而且劃動需要一定的速度, 所以我們定義幾個定量:private static final int SWIPE_MIN_DISTANCE = 120; private static final in
11、t SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;然后在onFling方法中, 判斷是不是一個合理的swipe動作:if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFli
12、pper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); if(e1.getX() - e2.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE
13、_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); else if (e2.getX() - e1.getX() SWIPE_MIN_DISTANCE & Math.abs(velocityX) SWIPE_THRESHOLD_VELOCITY) viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(sli
14、deRightOut); viewFlipper.showPrevious(); 這里的viewFlipper是含有多個view的一個container, 可以很方便的調(diào)用prev/next view, 加上animation動畫, 可以達到一些不錯的效果:viewFlipper = (ViewFlipper)findViewById(R.id.flipper); slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(
15、this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);自定義的animation可以查看具體的XML, 比如從左邊進來的一個動畫: 當然最后不要忘記在你的Activity中override onTouch方法來獲取手勢action:Override public boolean onTouchE
16、vent(MotionEvent event) if (gestureDetector.onTouchEvent(event) return true; else return false; Android滑動手勢的相關(guān)識別方法就為大家介紹到這里。android滑動分頁 實現(xiàn)原理通過手指的滑動,判斷數(shù)據(jù)大小然后動態(tài)改變數(shù)據(jù)底部的加載是一個viewimport android.app.ListActivity;import android.os.Bundle;import android.os.Handler;import android.view.Gravity;import android.
17、view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.AbsListView.OnScrollListener;import an
18、droid.widget.LinearLayout.LayoutParams;public class Test extends ListActivity implements OnScrollListener Aleph0 adapter = new Aleph0(); int lastItem = 0; int mProgressStatus = 0; private Handler mHandler = new Handler(); ProgressBar progressBar; protected void onCreate(Bundle savedInstanceState) su
19、per.onCreate(savedInstanceState); LinearLayout searchLayout = new LinearLayout(this); searchLayout.setOrientation(LinearLayout.HORIZONTAL); progressBar = new ProgressBar(this); progressBar.setPadding(0, 0, 15, 0); searchLayout.addView(progressBar,new LinearLayout.LayoutParams( LinearLayout.LayoutPar
20、ams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); TextView textView = new TextView(this); textView.setText(加載中.); textView.setGravity(Gravity.CENTER_VERTICAL); searchLayout.addView(textView,new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL
21、_PARENT ); searchLayout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout(this); loadingLayout.addView(searchLayout,new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); loadingLayout.setGravity(Gravity.CENTER); getLi
22、stView().addFooterView(loadingLayout); / Start lengthy operation in a background thread/ new Thread(new Runnable() / public void run() / while (mProgressStatus = totalCount; if (loadMore) adapter.count += visibleCount; / or any other amount adapter.notifyDataSetChanged(); public void onScrollStateCh
23、anged(AbsListView v, int s) class Aleph0 extends BaseAdapter int count = 40 ; /* starting amount */ public int getCount() return count; public Object getItem( int pos) return pos; public long getItemId( int pos) return pos; public View getView( int pos, View v, ViewGroup p) TextView view = new TextV
24、iew(EndLessActivity. this ); view.setText( entry + pos); return view; listview下部是按鈕控制:package com.ScrollListView;import Android.app.ListActivity;import Android.os.Bundle;import Android.view.Gravity;import Android.view.View;import Android.view.ViewGroup;import Android.widget.AbsListView;import Androi
25、d.widget.BaseAdapter;import Android.widget.Button;import Android.widget.LinearLayout;import Android.widget.ProgressBar;import Android.widget.TextView;import Android.widget.AbsListView.OnScrollListener;public class EndLessActivity extends ListActivity Aleph0 adapter = new Aleph0(); int mProgressStatu
26、s = 0 ; protected void onCreate(Bundle savedInstanceState) super .onCreate(savedInstanceState); LinearLayout searchLayout = new LinearLayout( this ); searchLayout.setOrientation(LinearLayout.HORIZONTAL); Button textView = new Button( this ); textView.setText( 加載中. ); textView.setGravity(Gravity.CENT
27、ER_VERTICAL); searchLayout.addView(textView, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT ); searchLayout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout( this ); loadingLayout.addView(searchLayout, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); loadingLayout.setGravity
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 發(fā)動機油品對性能影響研究考核試卷
- 供水設施維護考核試卷
- 田徑場地施工質(zhì)量控制考核試卷
- 機器學習在虛擬貨幣市場趨勢分析中的應用考核試卷
- 公司出納工作總結(jié)合集14篇
- 兔年新春七言對聯(lián)
- 商務局機關(guān)黨支部自我剖析材料
- 武侯區(qū)人才日活動方案
- 植樹節(jié)三月份活動方案
- 法庭企業(yè)團建活動方案
- 兩金占用管理制度
- 2025-2030年中國雙J輸尿管支架行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030中國豆腐產(chǎn)業(yè)消費趨勢及未來發(fā)展預測分析報告
- 出國培訓考試試題及答案
- 2024年中國中小企業(yè)融資發(fā)展報告
- 2023年10月全國高等教育自學考試《英語(二)》真題及答案
- 2025年高二語文下學期期末考試語言文字運用專項練習含答案解析
- 2025解除勞動合同協(xié)議書范本
- 湖南省永州市2025屆七下數(shù)學期末質(zhì)量檢測試題含解析
- 2025屆福建省泉州七中學七下數(shù)學期末聯(lián)考試題含解析
- 2024-2025 學年七年級英語下學期期末模擬卷 (深圳專用)原卷
評論
0/150
提交評論