編輯:關於Android編程
有些時候,我們需要知道當前手機上是否顯示了NavigationBar,也就是屏幕底部的虛擬按鍵。
比如截屏的時候,要獲取屏幕的高度,必須包括NavigationBar的高度。
試過網上的多種方法,但是對那種可以通過手勢來顯示/隱藏的NavigationBar沒辦法,最後終於找到了一個好辦法,看代碼:
public boolean isNavigationBarShow(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
Point realSize = new Point();
display.getSize(size);
display.getRealSize(realSize);
return realSize.y!=size.y;
}else {
boolean menu = ViewConfiguration.get(this).hasPermanentMenuKey();
boolean back = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
if(menu || back) {
return false;
}else {
return true;
}
}
}
public static int getNavigationBarHeight(Activity activity) {
if (!isNavigationBarShow(activity)){
return 0;
}
Resources resources = activity.getResources();
int resourceId = resources.getIdentifier("navigation_bar_height",
"dimen", "android");
//獲取NavigationBar的高度
int height = resources.getDimensionPixelSize(resourceId);
return height;
}
public static int getSceenHeight(Activity activity) {
return activity.getWindowManager().getDefaultDisplay().getHeight()+getNavigationBarHeight(activity);
}
具體代碼可以參考Bigbang項目的ViewUtil中的處理。
以上所述是小編給大家介紹的Android判斷NavigationBar是否顯示的方法(獲取屏幕真實的高度),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
小米手機請勿遮擋橙色區域解決方法
小米4、紅米2、小米Note的手機用戶可能經常會遇到“請勿遮擋橙色區域”的提示,這其實是小米手機的防誤觸功能的提示,以保證手機在口袋
Android設計模式系列之單例模式
單例模式,可以說是GOF的23種設計模式中最簡單的一個。這個模式相對於其他幾個模式比較獨立,它只負責控制自己的實例化數量單一(而不是考慮為用戶產生什麼樣的實例
android高分段進階攻略(2)傳感器
一開始,先對昨晚在昆明市火車站遇難的同胞表示默哀,並對惡勢力進行譴責,你們如果有再大的冤情也不要對平民下手,所謂冤有頭債有主,該弄誰弄誰去啊,欺負百姓算是怎麼回事,所以在
Android項目中自定義頂部標題欄
Android項目中自定義頂部標題欄下面給大家詳細介紹android中自定義頂部標題欄的思路及實現方式 先來圖: 思路及實現步驟 1.定義