您好,登錄后才能下訂單哦!
本文主要介紹了Android 獲取屏幕的多種寬高信息的示例代碼,分享給大家,具體如下:
包含的寬高信息如下圖所示:
在模擬器上獲取到的數(shù)據(jù):
08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920
08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080
08-26 07:19:34.211 7834-7834/com.czy.screeninfo E/MainActivity: getAvailableScreenHeight 1794
08-26 07:19:34.979 7834-7834/com.czy.screeninfo E/MainActivity: getStatusBarHeight 63
08-26 07:19:35.580 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeightIfRoom 126
08-26 07:19:36.340 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeight 126
08-26 07:19:37.048 7834-7834/com.czy.screeninfo E/MainActivity: getTitleHeight 147
具體的代碼:
/** * 作者: chenZY * 時間: 2017/8/26 14:37 * 描述: */ public class ScreenUtils { /** * 返回包括虛擬鍵在內的總的屏幕高度 * 即使虛擬按鍵顯示著,也會加上虛擬按鍵的高度 */ public static int getTotalScreenHeight(Activity activity) { DisplayMetrics displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics); return displayMetrics.heightPixels; } /** * 返回屏幕的寬度 */ public static int getScreenWidth(Activity activity) { DisplayMetrics displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics); return displayMetrics.widthPixels; } /** * 返回屏幕可用高度 * 當顯示了虛擬按鍵時,會自動減去虛擬按鍵高度 */ public static int getAvailableScreenHeight(Activity activity) { DisplayMetrics displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); return displayMetrics.heightPixels; } /** * 狀態(tài)欄高度 */ public static int getStatusBarHeight(Activity activity) { int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); return activity.getResources().getDimensionPixelSize(resourceId); } /** * 獲取虛擬按鍵的高度 * 會根據(jù)當前是否有顯示虛擬按鍵來返回相應的值 * 即如果隱藏了虛擬按鍵,則返回零 */ public static int getVirtualBarHeightIfRoom(Activity activity) { DisplayMetrics displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int usableHeight = displayMetrics.heightPixels; activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics); int realHeight = displayMetrics.heightPixels; return realHeight - usableHeight; } /** * 獲取虛擬按鍵的高度,不論虛擬按鍵是否顯示都會返回其固定高度 */ public static int getVirtualBarHeight(Activity activity) { int resourceId = activity.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); return activity.getResources().getDimensionPixelSize(resourceId); } /** * 標題欄高度,如果隱藏了標題欄則返回零 */ public static int getTitleHeight(Activity activity) { return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); } /** * 將dp值轉換為px值 */ public static int dp2px(Context context, float dpValue) { float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 將px值轉換為dp值 */ public static int px2dp(Context context, float pxValue) { float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } }
或者也可以從這里下載代碼:Android 獲取屏幕的多種寬高信息
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。