能手勢是一款手機手勢控制軟件。軟件可以設置隱藏手機的虛擬按鍵,來拓展你手機可顯示的范圍,通過滑動手機邊緣等手勢動作來代替手機虛擬按鍵,達到返回、返回主界面、任務欄等效果。只需要指尖在屏幕上輕劃就可以執行想要的動作,不讓虛擬按鍵霸占屏幕位置,更一步達到全面屏的效果。軟件不僅支持虛擬按鍵的手勢動作,還可以設置實體物理按鍵動作效果,你還可以將其按鍵設置為其他應用,例如相機,這樣就無需去應用欄中尋找就可以一鍵快速打開相機了。
下載地址:https://www.downkuai.com/android/112225.html
隨心所欲的手勢開啟您的應用;
漂亮的UI界面,小鮮肉的感覺;
輸入手勢就能打開您的軟件;
常用的軟件總是會優先被找到;
讓您越用越舒心,越用越好用;
讓您總是可以這樣玩,這樣玩,還可以這樣玩;
一、支持的手勢
1、從邊緣向內滑。
2、雙擊狀態欄。
3、長按實體鍵 (需要安卓 4.3+)。
4、也支持手寫筆 (S Pen) 和鼠標。
二、支持的動作
1、首頁、返回、最近應用、關閉屏幕、沉浸模式等。
2、啟動某個應用或捷徑。
大家帶來點的是第三章的最后一節——Gestures(手勢), 用過魅族手機的朋友相信對手勢肯定是不陌生的,在home鍵兩側像屏幕內滑動, 可以打開后臺任務列表等等~在應用中通過手勢來操作會大大提升用戶體驗, 比如Scroll手勢在瀏覽器中個滾屏,Fling在瀏覽器中的換頁等!
當然,有利也有弊,比如不當的手勢操作引起APP Carsh,經常這樣可是會引起用戶不滿的! 所以是否要為你的應用增加手勢,可要考慮清楚哦!另外手勢要和前面學的單指/多指觸碰相區分哦!
手勢是:連續觸碰的行為,比如左右上下滑動屏幕,又或者畫一些不規則的幾何圖形! Android對上述兩種手勢行為都提供了支持:
如果你的手機是Android 4.x的原生Android系統的話,你可能可以在你的手機或者平板上看到谷歌 提供的一個Gesture Builder的APP,該應用允許用戶以類似于涂鴉的方式繪制一個手寫符號,使之 對應一個字符串名稱!當然,沒有這樣的手機也沒關系,我們有模擬器嘛,自己開個4.0的系統試試 就知道了,另外,我們可以到\mmt\sdcard\gestures獲取到保存手勢的文件! 好了,嘮嘮叨叨那么多,開始講正題吧!
對了,貼下官方API文檔先:GestureDetector
1.Android中手勢交互的執行順序
我們來看下上述的三個類都是干嘛的: MotionEvent: 這個類用于封裝手勢、觸摸筆、軌跡球等等的動作事件。 其內部封裝了兩個重要的屬性X和Y,這兩個屬性分別用于記錄橫軸和縱軸的坐標。 GestureDetector: 識別各種手勢。 OnGestureListener: 這是一個手勢交互的監聽接口,其中提供了多個抽象方法, 并根據GestureDetector的手勢識別結果調用相對應的方法。
——上述資料摘自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1020/448.html
2.GestureListener詳解:
從1中我們知道了監聽手勢的關鍵是:GestureListener 他給我們提供了下述的回調方法:
知道了GestureListener的相關方法后,實現手勢檢測也很簡單,步驟如下:
代碼如下:
public class MainActivity extends AppCompatActivity {
private MyGestureListener mgListener;
private GestureDetector mDetector;
private final static String TAG="MyGesture";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//實例化GestureListener與GestureDetector對象
mgListener=new MyGestureListener();
mDetector=new GestureDetector(this, mgListener);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return mDetector.onTouchEvent(event);
}
//自定義一個GestureListener,這個是View類下的,別寫錯哦!!!
private class MyGestureListener implements GestureDetector.OnGestureListener {
@Override
public boolean onDown(MotionEvent motionEvent) {
Log.d(TAG, "onDown:按下");
return false;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
Log.d(TAG, "onShowPress:手指按下一段時間,不過還沒到長按");
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
Log.d(TAG, "onSingleTapUp:手指離開屏幕的一瞬間");
return false;
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
Log.d(TAG, "onScroll:在觸摸屏上滑動");
return false;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
Log.d(TAG, "onLongPress:長按并且沒有松開");
}
@Override
public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
Log.d(TAG, "onFling:迅速滑動,并松開");
return false;
}
}
}
對應操作截圖:
PS:從上述結果來看,我們發現了一個問題: 我們實現OnGestureListener需要實現所有的手勢,可能我針對的僅僅是滑動,但是你還是要去重載, 這顯得很逗逼,是吧,官方肯定會給出解決方法滴,官方另外給我們提供了一個SimpleOnGestureListener類 只需把上述的OnGestureListener替換成SimpleOnGestureListener即可!
3.簡單的例子:下滑關閉Activity,上滑啟動新的Activity
這里就用上述的SimpleOnGestureListener來實現吧:
運行效果圖:
實現代碼:
public class MainActivity extends AppCompatActivity {
private GestureDetector mDetector;
private final static int MIN_MOVE=200; //最小距離
private MyGestureListener mgListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//實例化SimpleOnGestureListener與GestureDetector對象
mgListener=new MyGestureListener();
mDetector=new GestureDetector(this, mgListener);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return mDetector.onTouchEvent(event);
}
//自定義一個GestureListener,這個是View類下的,別寫錯哦!!!
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float v, float v1) {
if(e1.getY() - e2.getY() > MIN_MOVE){
startActivity(new Intent(MainActivity.this, MainActivity.class));
Toast.makeText(MainActivity.this, "通過手勢啟動Activity", Toast.LENGTH_SHORT).show();
}else if(e1.getY() - e2.getY() < MIN_MOVE){
finish();
Toast.makeText(MainActivity.this,"通過手勢關閉Activity",Toast.LENGTH_SHORT).show();
}
return true;
}
}
}
結果分析: 從上面的對比就可以知道,相比起SimpleOnGestureListener使用SimpleOnGestureListener 顯得更加的簡單,想重寫什么方法就重寫什么方法,另外例子比較簡單,大家可以自己試試 其他玩法,比如通過手勢縮放圖片~
4.手勢添加與識別:
除了上面講解的手勢檢測外,Android還運行我們將手勢進行添加,然后提供了相關的識別API; Android中使用GestureLibrary來代表手勢庫,提供了GestureLibraries工具類來創建手勢庫!
四個加載手勢庫的靜態方法:
獲得GestureLibraries對象后,就可以使用該對象提供的下述方法來做相應操作了:
相關方法:
GestureOverlayView手勢編輯組件:
Android為GestureOverlayView提供了三種監聽器接口,如下,一般常用的是:OnGesturePerformedListener;用于手勢完成時提供響應!
5.手勢添加示例:
PS:例子引用的是——李剛《Android瘋狂講義》的代碼
運行效果圖:
好吧,下面貼下實現代碼:
兩個布局文件:activity_main.xml和dialog_save.xml
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="請在下方屏幕中繪制手勢~"
android:textSize="20sp"/>
<!-- gestureStrokeType控制手勢是否需要一筆完成,multiple表示允許多筆-->
<android.gesture.GestureOverlayView
android:id="@+id/gesture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gestureStrokeType="multiple" />
</LinearLayout>
dialog_save.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="請填寫手勢名稱:"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_name"/>
</LinearLayout>
<ImageView
android:id="@+id/img_show"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_marginTop="10dp"/>
</LinearLayout>
MainActivity.java:
public class MainActivity extends AppCompatActivity {
private EditText editText;
private GestureOverlayView gesture;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取手勢編輯組件后,設置相關參數
gesture=(GestureOverlayView) findViewById(R.id.gesture);
gesture.setGestureColor(Color.GREEN);
gesture.setGestureStrokeWidth(5);
gesture.addOnGesturePerformedListener(new GestureOverlayView.OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView gestureOverlayView, final Gesture gesture) {
View saveDialog=getLayoutInflater().inflate(R.layout.dialog_save,null,false);
ImageView img_show=(ImageView) saveDialog.findViewById(R.id.img_show);
final EditText edit_name=(EditText) saveDialog.findViewById(R.id.edit_name);
Bitmap bitmap=gesture.toBitmap(128,128,10,0xffff0000);
img_show.setImageBitmap(bitmap);
new AlertDialog.Builder(MainActivity.this).setView(saveDialog)
.setPositiveButton("保存",new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//獲取文件對應的手勢庫
GestureLibrary gestureLib=GestureLibraries.fromFile("/mnt/sdcard/mygestures");
gestureLib.addGesture(edit_name.getText().toString(),gesture);
gestureLib.save();
}
}).setNegativeButton("取消", null).show();
}
});
}
}
最后還需要在AndroidManifest.xml中添加寫入SD卡的權限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
6.手勢識別示例
實現代碼:
public class MainActivity extends AppCompatActivity {
private GestureOverlayView gesture;
private GestureLibrary gestureLibrary;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext=MainActivity.this;
gestureLibrary=GestureLibraries.fromFile("mmt/sdcard/mygestures");
if (gestureLibrary.load()) {
Toast.makeText(mContext, "手勢庫加載成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(mContext, "手勢庫加載失敗", Toast.LENGTH_SHORT).show();
}
//獲取手勢編輯組件后,設置相關參數
gesture=(GestureOverlayView) findViewById(R.id.gesture);
gesture.setGestureColor(Color.GREEN);
gesture.setGestureStrokeWidth(5);
gesture.addOnGesturePerformedListener(new GestureOverlayView.OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView gestureOverlayView, final Gesture gesture) {
//識別用戶剛繪制的手勢
ArrayList<Prediction> predictions=gestureLibrary.recognize(gesture);
ArrayList<String> result=new ArrayList<String>();
//遍歷所有找到的Prediction對象
for (Prediction pred : predictions) {
if (pred.score > 2.0) {
result.add("與手勢【" + pred.name + "】相似度為" + pred.score);
}
}
if (result.size() > 0) {
ArrayAdapter<Object> adapter=new ArrayAdapter<Object>(mContext,
android.R.layout.simple_dropdown_item_1line, result.toArray());
new AlertDialog.Builder(mContext).setAdapter(adapter,null).setPositiveButton("確定",null).show();
}else{
Toast.makeText(mContext,"無法找到匹配的手勢!",Toast.LENGTH_SHORT).show();
}
}
});
}
}
另外別忘了在AndroidManifest.xml文件中加入讀SD卡的權限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
本節小結:
好的,本節介紹了Android中的Gesture手勢,講解了手勢判斷,手勢添加,手勢識別三個內容 ,大部分例子來自于李剛老師的Android瘋狂講義,有興趣的可以看看該書
族s6怎么關閉全面屏手勢置_魅族手機怎
指紋識別往哪放?全面屏時代的難題
從魅藍手機官微發布的圖片看,魅藍S6極可能搭載有最近火熱的屏下指紋識別技術。在之前的CES2018展會上,vivo在vivoX20Plus基礎上推出了全球首款采用屏下指紋識別的手機,引發全球轟動。這款手機采用了新思的屏下指紋識別芯片,不過并未在國內正式發布,也沒有開啟發售。
vivo屏下指紋識別
在屏下指紋識別技術出現前,大多數全面屏手機都選擇了取消Home鍵和物理導航鍵,將指紋識別鍵后置。據悉,魅藍S6為了達到18:9比例的全面屏效果也選擇了將mBack鍵取消。不過從魅藍手機官微發布的海報看,魅藍S6極有可能采用了屏下指紋識別技術。更有網友爆出了魅藍S6屏下指紋識別的視頻,并指出其采用的屏下指紋識別技術來自于匯頂科技。
魅藍S6屏下指紋識別(圖片來自微博)
匯頂科技用三星S7edge進行指紋識別(圖片來自互聯網)
匯頂科技是國內最早研發屏下指紋識別技術的廠商之一。作為國內智能產品的上游供應商,其下游廠商提供的具有指紋識別功能的智能手機、平板電腦以及筆記本電腦,背后的技術均來自于匯頂科技的觸控與指紋識別方案。早在MWC2017,匯頂科技就對外展示過他們所研發的評下指紋識別技術。不過由于解鎖速度的原因,在當時并未大規模應用。
在“全面屏元年”的大爆發后,用戶對于全面屏基礎上的技術創新更加期待。屏下指紋識別技術在vivo率先在CES上展出后立刻名聲大噪。如果魅藍S6真的采用了這一技術,不得不說,這很有可能成為一個極大的賣點。
工信部真機圖(圖片來自互聯網)
上文提到的魅藍M6s在視頻中采用了屏后指紋識別。而從工信部公布的真機圖以及側面指紋專利圖看,魅藍S6也可能采用側面指紋識別,在側邊位置有類似于索尼的指紋識別鍵。這兩種說法尚未獲得官方證實。魅藍S6到底采用哪種指紋識別方式,還要到發布會才能知曉。
本文屬于原創文章,如若轉載,請注明來源:今年首款全面屏將至 魅藍S6有屏下指紋?//mobile.zol.com.cn/674/6748448.html
以上是關于魅族魅藍S6產品評測的報道,有關魅族魅藍S6的外觀、屏幕、拍照、續航、性能等后續內容,請持續關注中關村在線關于魅族魅藍S6評測的報道。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。