




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Android滑動(dòng)手勢(shì)偵測(cè)方法介紹時(shí)間:2010-12-01 09:05 來源:51 收藏 復(fù)制分享 共有評(píng)論(0)條在Android手機(jī)操作系統(tǒng)中支持各種滑動(dòng)手勢(shì)的操作。我們?cè)谶@里為大家介紹的方法主要就是針對(duì)這些手勢(shì)如何能在Android平臺(tái)中偵測(cè)出來。下面就讓我們大家一起來看看Android滑動(dòng)手勢(shì)具體的識(shí)別方法吧。Android Activity跳轉(zhuǎn)相關(guān)操作技巧分享Android創(chuàng)建sdcard詳細(xì)圖解Android系統(tǒng)信息查看方法詳解Android數(shù)據(jù)庫相關(guān)代碼解讀Android拍照實(shí)現(xiàn)方式概述Android SDK提供了一個(gè)listener類來偵測(cè)各種不同的手勢(shì):Sim
2、pleOnGestureListener. 你只需要實(shí)現(xiàn)自己所關(guān)心的手勢(shì)就可以了.Swipe在android里面是叫Fling首先創(chuàng)建自己的一個(gè)手勢(shì)detector類:class MyGestureDetector extends SimpleOnGestureListener Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 一個(gè)Android滑動(dòng)手勢(shì)有幾個(gè)特征, 比如是在x或者y軸上近乎直線的劃動(dòng), 中途路徑的偏差不能太大, 而且劃動(dòng)需要一定的速
3、度, 所以我們定義幾個(gè)定量: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方法中, 判斷是不是一個(gè)合理的swipe動(dòng)作: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是含有多個(gè)view的一個(gè)container, 可以很方便的調(diào)用prev/next view, 加上animation動(dòng)畫, 可以達(dá)到一些不錯(cuò)的效果: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, 比如從左邊進(jìn)來的
8、一個(gè)動(dòng)畫: 當(dāng)然最后不要忘記在你的Activity中override onTouch方法來獲取手勢(shì)action:Override public boolean onTouchEvent(MotionEvent event) if (gestureDetector.onTouchEvent(event) return true; else return false; Android滑動(dòng)手勢(shì)的相關(guān)識(shí)別方法就為大家介紹到這里。Android滑動(dòng)手勢(shì)偵測(cè)方法介紹時(shí)間:2010-12-01 09:05 來源:51 收藏 復(fù)制分享 共有評(píng)論(0)條在Android手機(jī)操作系統(tǒng)中支持各種滑動(dòng)手
9、勢(shì)的操作。我們?cè)谶@里為大家介紹的方法主要就是針對(duì)這些手勢(shì)如何能在Android平臺(tái)中偵測(cè)出來。下面就讓我們大家一起來看看Android滑動(dòng)手勢(shì)具體的識(shí)別方法吧。Android Activity跳轉(zhuǎn)相關(guān)操作技巧分享Android創(chuàng)建sdcard詳細(xì)圖解Android系統(tǒng)信息查看方法詳解Android數(shù)據(jù)庫相關(guān)代碼解讀Android拍照實(shí)現(xiàn)方式概述Android SDK提供了一個(gè)listener類來偵測(cè)各種不同的手勢(shì):SimpleOnGestureListener. 你只需要實(shí)現(xiàn)自己所關(guān)心的手勢(shì)就可以了.Swipe在android里面是叫Fling首先創(chuàng)建自己的一個(gè)手勢(shì)detector類:clas
10、s MyGestureDetector extends SimpleOnGestureListener Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 一個(gè)Android滑動(dòng)手勢(shì)有幾個(gè)特征, 比如是在x或者y軸上近乎直線的劃動(dòng), 中途路徑的偏差不能太大, 而且劃動(dòng)需要一定的速度, 所以我們定義幾個(gè)定量: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方法中, 判斷是不是一個(gè)合理的swipe動(dòng)作: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是含有多個(gè)view的一個(gè)container, 可以很方便的調(diào)用prev/next view, 加上animation動(dòng)畫, 可以達(dá)到一些不錯(cuò)的效果: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, 比如從左邊進(jìn)來的一個(gè)動(dòng)畫: 當(dāng)然最后不要忘記在你的Activity中override onTouch方法來獲取手勢(shì)action:Override public boolean onTouchE
16、vent(MotionEvent event) if (gestureDetector.onTouchEvent(event) return true; else return false; Android滑動(dòng)手勢(shì)的相關(guān)識(shí)別方法就為大家介紹到這里。android滑動(dòng)分頁 實(shí)現(xiàn)原理通過手指的滑動(dòng),判斷數(shù)據(jù)大小然后動(dòng)態(tài)改變數(shù)據(jù)底部的加載是一個(gè)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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年瓷器修補(bǔ)膠項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年特車行業(yè)深度研究報(bào)告
- 2025至2030年燃油加熱系統(tǒng)項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年機(jī)械傳動(dòng)變速箱項(xiàng)目投資價(jià)值分析報(bào)告
- 托管班教師管理制度
- 華為企業(yè)員工培訓(xùn)
- 2025至2030年中國(guó)苯肼行業(yè)發(fā)展預(yù)測(cè)及投資策略報(bào)告
- 重度先兆子癇護(hù)理查房
- 2025年長(zhǎng)粒香大米項(xiàng)目可行性研究報(bào)告
- 2025年輕型多用車床項(xiàng)目可行性研究報(bào)告
- 發(fā)展全過程人民民主發(fā)展全過程人民民主
- (2023年度)中央廚房、集體供餐配送單位食品安全全項(xiàng)目自查記錄表
- 【企業(yè)精益生產(chǎn)分析國(guó)內(nèi)外文獻(xiàn)綜述3000字】
- 獼猴桃果醬制作方法
- 逆變器行業(yè)營(yíng)銷策略方案
- 國(guó)民經(jīng)濟(jì)行業(yè)分類與代碼
- 網(wǎng)絡(luò)互連技術(shù)-管控IP數(shù)據(jù)通信ACL(訪問控制列表)
- 線性光耦隔離檢測(cè)電壓電路
- 材料封樣清單土建安裝
- 免疫比濁分析(免疫學(xué)檢驗(yàn)課件)
- XXX中學(xué)“生本課堂”實(shí)施方案
評(píng)論
0/150
提交評(píng)論