當前位置:首頁 » 安卓系統 » android手勢操作

android手勢操作

發布時間: 2022-07-19 01:42:23

『壹』 android編程 三個手指的手勢怎麼實現啊

event.getPointerCount可以獲取到。

『貳』 android 手勢判斷是橫向滑動還是縱向 csdn

對於Android中的手勢識別可以從以下三個Listener入手——OnTouchListener、OnGestureListener、OnDoubleTapListener。這三個監聽器分別是觸摸監聽、手勢滑動監聽和屏幕雙擊操作監聽。很多的時候我們需要這些手勢識別的操作,例如我們自定義控制項的時候就經常會用到。下面就對這三個監聽器分別進行介紹。

觸摸監聽器OnTouchListener
讓我們的Activity去現實此介面,並重寫onTouch方法。重寫OnTouchListener的onTouch方法 此方法在觸摸屏被觸摸,即發生觸摸事件(接觸和撫摸兩個事件)的時候被調用。示範代碼如下:

@Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
Toast.makeText(this, "onTouch", TIME_OUT).show();
return true;
}

手勢滑動監聽器OnGestureListener
讓我們的Activity去現實此介面,並重寫onFling、onLongPress、onScroll、onDown、onShowPress、onSingleTapUp方法。示範代碼如下:

/**
* 手勢滑動時別調用
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {

if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
Toast.makeText(this, "向左滑動", TIME_OUT).show();
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) {
Toast.makeText(this, "向右滑動", TIME_OUT).show();
}
return false;
}

/**
* 長按時被調用
*/
@Override
public void onLongPress(MotionEvent e) {
Toast.makeText(this, "觸發長按回調", TIME_OUT).show();
}

/**
* 滾動時調用
*/
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Toast.makeText(this, "觸發滾動回調", TIME_OUT).show();
return false;
}

/**
* 在按下動作時被調用
*/
@Override
public boolean onDown(MotionEvent e) {
Toast.makeText(this, "按下回調", TIME_OUT).show();
return false;
}

/**
* 按住時被調用
*/
@Override
public void onShowPress(MotionEvent e) {
Toast.makeText(this, "按住不松回調", TIME_OUT).show();
}

/**
* 抬起時被調用
*/
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(this, "觸發抬起回調", TIME_OUT).show();
return false;
}

雙擊屏幕監聽器OnDoubleTapListener
讓我們的Activity去現實此介面,並重寫onDoubleTap、onDoubleTapEvent、onSingleTapConfirmed方法。示範代碼如下:

@Override
public boolean onDoubleTap(MotionEvent arg0) {
Toast.makeText(this, "觸發雙擊回調", TIME_OUT).show();
return false;
}

@Override
public boolean onDoubleTapEvent(MotionEvent arg0) {
Toast.makeText(this, "觸發雙擊的按下跟抬起回調", TIME_OUT).show();
return false;
}

@Override
public boolean onSingleTapConfirmed(MotionEvent arg0) {
Toast.makeText(this, "觸發單擊確認回調", TIME_OUT).show();
return false;
}

『叄』 Android P 要加入手勢操作了,可是怎麼這么

com.android.systemui已停止運行解決方法
出現上述問題我們首先進行對手機進行恢復出廠設置,如果接連出現com.android.systemui已停止的問題無法進行恢復出廠設置,那麼此時我們就需要在recovery模式下進行雙清操作;在recovery模式下對手機進行恢復出廠設置。下面是具體解決方法:
1 進入recovery模式
2 在recovery模式下我們使用音量鍵選擇,電源鍵確認,依次執行恢復出廠設置和清空緩存兩項操作,英文recovery界面下為(wipe data/factory reset和wipe cache partition兩項)。
3 官方recovery和第三方recovery界面有所不同,具體執行方法請看小編介紹的文字,雖然界面不同,但是內部選項還是一樣的,如果在雙清以後還是無法解決com.android.systemui已停止的問題,那麼我們需要對手機進行刷機升級

『肆』 手勢操作秒安卓 Ubuntu版PRO 5深度體驗

【IT168 評測】作為一家有情懷有志向的手機品牌,魅族在今年已經推出了很多很有特點的手機,讓人眼花繚亂,那麼大家還記得在今年的MWC 2016大會上,魅族發布了一款搭載Ubuntu系統的魅族PRO 5嗎?這款手機已經在4月26日正式在京東國際面向全球發售。很多人都會存有疑問,為什麼魅族要在安卓系統統治手機市場的今天推出一台搭載非安卓系統的手機呢?其實道理很簡單,安卓生態對於手機品牌的發展來說是一種變相的枷鎖,魅族在Android之外,發展第二個系統平台,可以說是嘗試擺脫安卓的一種嘗試。但就實際的情況來看,Ubuntu版魅族PRO 5可能又是情懷象徵大於其它意義的產品。

購買鏈接:Ubuntu版 魅族PRO 5 【點擊查看詳情

說起魅族與Ubuntu之間的「感情」,早在魅族MX4時代就開始,在當時也引起了各方的關注,但由於當時的Ubuntu版MX4主要面向開發者限量銷售,所以引發的 波瀾並不大。而在今天,Ubuntu版魅族PRO 5正式向廣大用戶發售,並且它還是Ubuntu系統陣營裡面配置最高的手機,這對於Ubuntu的普及有相當積極的作用。但是這台手機並沒有登陸國內市場,是不是因為在國內沒有實用的意義呢?從上周開始Ubuntu版魅族PRO 5到達了編輯部,小編對其進行了為期一周的體驗,看一看Ubuntu版PRO 5在國內是否擁有實用價值,他與安卓版的PRO 5相比有哪一些優勢,又有哪一些問題急需解決。

界面設計以及交互體驗:


▲Ubuntu版PRO 5

本次體驗的魅族PRO 5搭載Ubuntu 15.04系統,在界面設計上,Ubuntu沒有真正意義上的主界面,用戶可以通過管理菜單對主頁進行設定。而在交互體驗上,Ubuntu與IOS、安卓等主流的系統完全不同,它主要的是以手勢操控的交互方式,與其相似的是曾經的Meego現在的salifish。但從小編的體驗來看,這種交互方式對於用戶來講還是相當陌生,小編剛上手的時候也花了不少的時間去學習這個適應這種交互方式,但是熟悉後實際操作下來的確要比IOS以及安卓便捷。

手勢操作體驗:


▲手勢操作解析

筆者有幸體驗過幾年前的Ubuntu 13.10,那是Ubuntu的系統體驗相當差勁,給我留下了比較差的印象,而在體驗Ubuntu 15.04後,小編覺得這才算是一個比較完善的系統,不管是在界面設計還是手勢操作的優化上終於體現出一個完整系統端的風范,配合魅族PRO 5強悍的配置,整個系統的運行流暢。但在一周的體驗過程中還是發現了一些問題,最大的問題就是魅族獨特的m-Touch按鍵以及按鍵的指紋識別都沒用了,有種得不償失的感覺。而回到主頁也必須按HOME鍵兩次,對HOME鍵的質量是一個挺大的考驗。

系統自帶應用體驗:


▲撥號、信息、聯系人


▲自帶瀏覽器


▲照相應用和圖庫

自帶的應用程序在體驗上已經基本和其他系統一致,整體運行流暢,要說在原生應用中使用最多的手勢當屬上滑,經過一周的體驗小編已經完全習慣了上滑調出更多的操作,反而在重新使用安卓的時候感到了諸多不便。但與主流的操作系統相比,現在Ubuntu的原生應用支持的功能還是比較少的,就例如相機,僅僅支持簡單的拍照以及攝像而已,而IOS、安卓平台的相機功能就非常豐富,這個也需要Ubuntu在後期去改進。還有一點,在這一周的體驗裡面,原生應用不是會有突發性崩潰的現象,系統的穩定性還有待提高。

第三方應用體驗:


▲應用菜單以及應用商店


▲整個商店唯一能找到的大型休閑游戲「割繩子」

可能大家都會發現,為什麼在這個環節中小編沒有使用視頻對這些應用進行演示。其實不是小編我偷懶,而是Ubuntu的第三方應用是在是太少了,小編從接手這台手機到現在已經一周多的時間,無論通過什麼途徑去尋找都沒有辦法找到可以在Ubuntu上運行的QQ和微信APP,能找到的國內社交媒體就僅僅只有新浪微博,並且上圖中所看到的應用程序多數是基於HTML開發的,可以看做是鏈接到對應網頁端的快捷方式,也可以稱作雲應用。當然,基於HTML的應用程序是未來的發展趨勢,但不可否認的是現在的大環境下本地應用還是擁有得天獨厚的優勢的。據了解,目前基於Ubuntu的本地應用僅僅只有1200款左右,而本土化的應用程序就更少了。也就是說,在應用如此匱乏的情況下,除了裝X,Ubuntu版的PRO 5在國內基本沒有實用價值。


▲Ubuntu版魅族PRO 5

小結:從一周的體驗來看,Ubuntu版的PRO 5在界面設計以及操作體驗上與上一版本相比改進了不少,不管是系統的邏輯到交互的方式都有了質一般的提高。手勢操作的方式也讓Ubuntu擁有自己獨特的特點。但是最大的短板還是在與第三方應用。系統流暢了固然是好,但應用的匱乏也使Ubuntu沒有太大的實用意義。如果真的讓小編選擇的話,小編還是會選擇安卓版的魅族PRO 5,畢竟像小編這種應用控,Ubuntu根本就沒有辦法滿足日常的需求。

但不可否認,Ubuntu版的PRO 5 的確給小編帶來了其他系統所沒有的系統體驗,而該版本的PRO 5雖然登陸了京東國際,但並沒有在國內開放銷售,所以各位如果真的想體驗Ubuntu所帶來的魅力,可能就要通過海淘或者拜託香港的朋友來購買了。並且各位在購買之前一定要注意,小編曾經反復嘗試把Ubuntu版PRO 5刷回安卓,均已失敗告終。在後面與魅族官方溝通後得知,各位購買了Ubuntu版PRO 5的用戶如果真的需要回到安卓系統,只能通過聯系魅族官方售後來解決。當然,如果僅僅是喜歡魅族PRO 5的外觀,或許安卓版的PRO 5會是一個更棒的選擇。

『伍』 使用安卓系統的手機怎麼設置手勢鎖屏

安卓手機設置鎖屏密碼的方法:

注意:各台設備上的 Android 系統不盡相同。這些說明僅適用於運行 Android 7.0 及以上版本的設備。查看 Android 系統版本參考設置。

1、打開設備的「設置」應用

2、在「個人」下方,點按安全。

3、要更改屏幕鎖定設置,請點按「屏幕鎖定」旁邊的「設置」。具體設置包括自動鎖定前的等待時間、電源按鈕鎖定和鎖定屏幕消息。

4、要選擇一種屏幕鎖定方式,請點按屏幕鎖定方式。

  • 如果已設置鎖定方式,則必須先輸入 PIN 碼、密碼或繪制解鎖圖案,然後才能選擇其他鎖定選項。

  • 點按想要使用的屏幕鎖定選項,然後按照屏幕上的說明操作。

注意:「密碼」方式會要求至少輸入 4 個字母或數字。只要您能設置一個安全系數高的密碼,這就是最安全的選項。

『陸』 android 關於手勢事件onFling

touch事件中先return給手勢事件(return gestureDetector.onTouchEvent(event); ),在onFling中判斷,如果速度大於一個值就執行,應該就可以的

『柒』 android怎樣可以控制手勢滑動的

我們先來明確一些概念,首先,Android的事件處理機制是基於Listener(監聽器)來實現的,比我們今天所說的觸摸屏相關的事件,就是通 過onTouchListener。其次,所有View的子類都可以通過setOnTouchListener()、 setOnKeyListener()等方法來添加對某一類事件的監聽器。第三,Listener一般會以Interface(介面)的方式來提供,其中 包含一個或多個abstract(抽象)方法,我們需要實現這些方法來完成onTouch()、onKey()等等的操作。這樣,當我們給某個view設 置了事件Listener,並實現了其中的抽象方法以後,程序便可以在特定的事件被dispatch到該view的時候,通過callbakc函數給予適 當的響應。
看一個簡單的例子,就用最簡單的TextView來說明(事實上和ADT中生成的skeleton沒有什麼區別)。
Java代碼

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// init TextView
TextView tv = (TextView) findViewById(R.id.page);

// set OnTouchListener on TextView
tv.setOnTouchListener(this);

// show some text
tv.setText(R.string.text);
}

@Override
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(this, "onTouch", Toast.LENGTH_SHORT).show();
return false;
}

我們給TextView的實例tv設定了一個onTouchListener,因為GestureTest類實現了OnTouchListener 介面,所以簡單的給一個this作為參數即可。onTouch方法則是實現了OnTouchListener中的抽象方法,我們只要在這里添加邏輯代碼即 可在用戶觸摸屏幕時做出響應,就像我們這里所做的——打出一個提示信息。
這里,我們可以通過MotionEvent的getAction()方法來獲取Touch事件的類型,包括 ACTION_DOWN, ACTION_MOVE, ACTION_UP, 和ACTION_CANCEL。ACTION_DOWN是指按下觸摸屏,ACTION_MOVE是指按下觸摸屏後移動受力點,ACTION_UP則是指松 開觸摸屏,ACTION_CANCEL不會由用戶直接觸發(所以不在今天的討論范圍,請參考ViewGroup.onInterceptTouchEvent(MotionEvent))。藉助對於用戶不同操作的判斷,結合getRawX()、getRawY()、getX()和getY()等方法來獲取坐標後,我們可以實現諸如拖動某一個按鈕,拖動滾動條等功能。待機可以看看MotionEvent類的文檔,另外也可以看考TouchPaint例子。
回到今天所要說的重點,當我們捕捉到Touch操作的時候,如何識別出用戶的Gesture?這里我們需要GestureDetector.OnGestureListener介面的幫助,於是我們的GestureTest類就變成了這個樣子。
Java代碼

public class GestureTest extends Activity implements OnTouchListener,
OnGestureListener {
....
}

隨後,在onTouch()方法中,我們調用GestureDetector的onTouchEvent()方法,將捕捉到的MotionEvent交給 GestureDetector 來分析是否有合適的callback函數來處理用戶的手勢。
Java代碼

@Override
public boolean onTouch(View v, MotionEvent event) {

// OnGestureListener will analyzes the given motion event
return mGestureDetector.onTouchEvent(event);
}

接下來,我們實現了以下6個抽象方法,其中最有用的當然是onFling()、onScroll()和onLongPress()了。我已經把每一個方法代表的手勢的意思寫在了注釋里,大家看一下就明白了。
// 用戶輕觸觸摸屏,由1個MotionEvent ACTION_DOWN觸發Java代碼

@Override
public boolean onDown(MotionEvent e) {

// TODO Auto-generated method stub
Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show();

return false;
}

// 用戶輕觸觸摸屏,尚未松開或拖動,由一個1個MotionEvent ACTION_DOWN觸發
// 注意和onDown()的區別,強調的是沒有松開或者拖動的狀態

@Override
public void onShowPress(MotionEvent e) {

// TODO Auto-generated method stub
}

用戶(輕觸觸摸屏後)松開,由一個1個MotionEvent ACTION_UP觸發

@Override

public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}

用戶按下觸摸屏、快速移動後松開,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE, 1個ACTION_UP觸發

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {
// TODO Auto-generated method stub
return false;
}

// 用戶長按觸摸屏,由多個MotionEvent ACTION_DOWN觸發
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}

// 用戶按下觸摸屏,並拖動,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE觸發
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// TODO Auto-generated method stub
return false;
}

我們來試著做一個onFling()事件的處理吧,onFling()方法中每一個參數的意義我寫在注釋中了,需要注意的是Fling事件的處理代 碼中,除了第一個觸發Fling的ACTION_DOWN和最後一個ACTION_MOVE中包含的坐標等信息外,我們還可以根據用戶在X軸或者Y軸上的 移動速度作為條件。比如下面的代碼中我們就在用戶移動超過100個像素,且X軸上每秒的移動速度大於200像素時才進行處理。

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

// 參數解釋:
// e1:第1個ACTION_DOWN MotionEvent
// e2:最後一個ACTION_MOVE MotionEvent
// velocityX:X軸上的移動速度,像素/秒
// velocityY:Y軸上的移動速度,像素/秒
// 觸發條件 :
// X軸的坐標位移大於FLING_MIN_DISTANCE,且移動速度大於FLING_MIN_VELOCITY個像素/秒
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {

// Fling left
Toast.makeText(this, "Fling Left", Toast.LENGTH_SHORT).show();
} else
if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {

// Fling right
Toast.makeText(this, "Fling Right", Toast.LENGTH_SHORT).show();
}

return false;
}

問題是,這個時候如果我們嘗試去運行程序,你會發現我們根本得不到想要的結果,跟蹤代碼的執行的會發現onFling()事件一直就沒有被捕捉到。這正是一開始困擾我的問題,這到底是為什麼呢?
我在討論組的Gesture detection這個帖子里找到了答案,即我們需要在onCreate中tv.setOnTouchListener(this);之後添加如下一句代碼。
tv.setLongClickable(true);
只有這樣,view才能夠處理不同於Tap(輕觸)的hold(即ACTION_MOVE,或者多個ACTION_DOWN),我們同樣可以通過layout定義中的android:longClickable來做到這一點。
這次遇到的這個問題和上次MapView中setOnKeyListener遇到的問題挺類似,其實都是對SDK的了解不夠全面,遇到了一次記住了就好。不過話說回來,Google在文檔方面確實需要加強了,起碼可以在OnGestureListener中說明需要滿足那些條件才可以保證手勢被正確識別。

『捌』 Android的雙指手勢是怎麼實現的

android對多點觸摸的支持
使用MotionEvent對象方式處理,比如開始觸控時會觸發ACTION_DOWN而移動操作時為 ACTION_MOVE最終放開手指時觸發ACTION_UP事件。當然還有用戶無規則的操作可能觸發ACTION_CANCEL這個動作。
對於onTouchEvent方法的參數MotionEvent我們可以詳細處理來實現對多點觸控的了解,

熱點內容
安卓手機鎖了怎麼開 發布:2025-01-23 17:21:18 瀏覽:136
經濟學演算法 發布:2025-01-23 17:13:46 瀏覽:420
如何和軟體聯系伺服器 發布:2025-01-23 17:13:00 瀏覽:799
javacrc16演算法 發布:2025-01-23 17:11:31 瀏覽:224
編程加圖片 發布:2025-01-23 17:10:33 瀏覽:566
中國風網站源碼 發布:2025-01-23 17:05:56 瀏覽:679
pythonfilter用法 發布:2025-01-23 17:04:26 瀏覽:568
java轉number 發布:2025-01-23 16:58:11 瀏覽:476
解壓的英語作文 發布:2025-01-23 16:45:05 瀏覽:969
湖南首選dns伺服器地址 發布:2025-01-23 16:06:39 瀏覽:874