本篇內容主要講解“實現Android Camera屏蔽下拉框和導航欄的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“實現Android Camera屏蔽下拉框和導航欄的方法是什么”吧!
在開發過程中,有時候可能需要防呆的功能,防止用戶在使用過程中誤點返回鍵,HOME鍵,下拉框等之類的。接下來我們需要屏蔽這些按鍵,先看看代碼:
/**
* 隱藏虛擬鍵
*/
public static void hideNavigation(Activity context) {
if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB)) {
Logger.get().d("myth hideNavigation " + context.getClass().getSimpleName());
context.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}
/**
* 隱藏虛擬鍵
*/
public static void hideNavigation(View view) {
if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB)) {
Logger.get().d("myth hideNavigation " + view.getClass().getSimpleName());
// | View.SYSTEM_UI_FLAG_FULLSCREEN
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}
/**
* 顯示虛擬鍵
*/
public static void showNavigation(View view) {
if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB)) {
Logger.get().d("myth hideNavigation " + view.getClass().getSimpleName());
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}上面代碼或許是一種方式,但是這種方式不是很穩定,很容易就自己又顯示出來了,之后又找到一種實現方式,代碼如下,親測沒問題:
/**
* hide Navigation
*/
public static void hideNavigation(Activity context) {
statusBarManager = (StatusBarManager) context.getSystemService("statusbar");
int flag = StatusBarManager.DISABLE_HOME | StatusBarManager.DISABLE_BACK | StatusBarManager.DISABLE_SEARCH | StatusBarManager.DISABLE_RECENT | StatusBarManager.DISABLE_EXPAND;
statusBarManager.disable(flag);
}
public static void showNavigation(){
if (statusBarManager != null)
statusBarManager.disable(StatusBarManager.DISABLE_NONE);
}StatusBarManager這個類估計是找不到,如果用Android源碼編譯,可以import包就ok:
import android.app,StatusBarManager;
如果不是android 源碼編譯,那可以使用反射的機制完成這個功能,代碼如下:
private void disableStatusBars() {
Object service = getSystemService("statusbar");
try {
Class<?> statusBarManager = Class.forName
("android.app.StatusBarManager");
Method expand = statusBarManager.getMethod("disable", int.class);
expand.invoke(service, 0x00010000);
} catch (Exception e) {
e.printStackTrace();
}
}到此,相信大家對“實現Android Camera屏蔽下拉框和導航欄的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。