您好,登錄后才能下訂單哦!
一大波干貨來襲,屏幕尺寸各種獲得,狀態欄尺寸可正確獲得,親測。
package com.elyar.app.util.measure; import java.lang.reflect.Field; import android.app.Activity; import android.util.DisplayMetrics; public class DisplayMeasure { /** * Note:個人經驗不服來辯<br> * 只有activity可以使用getWindowManager,否則應該使用<br> * Context.getResources().getDisplayMetrics()來獲取.<br> * * @author ElyarAnwar 2016-1-29 21:24 Aksu * */ public DisplayMeasure() { } /** * 獲取屏幕尺寸,單位為像素 * @param context Activity的上下文 * @return 屏幕寬度 單位PX */ public static int getScreenWidthPixel(Activity context){ DisplayMetrics outMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); int widthPixels = outMetrics.widthPixels; return widthPixels; } /** * 獲取屏幕尺寸,單位為像素 * @param context Activity的上下文 * @return 屏幕高度 單位PX */ public static int getScreenHeightPixel(Activity context){ DisplayMetrics outMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); int heightPixels = outMetrics.heightPixels; return heightPixels; } /** * 獲取屏幕尺寸,單位為dp * @param context Activity的上下文 * @return 屏幕寬度 單位Dp */ public static int getScreenWidthInDp(Activity context){ DisplayMetrics outMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); int widthDp = outMetrics.widthPixels; return ChangeUnits.px2dp(context, widthDp);//將PX轉換成Dp } /** * 獲取屏幕尺寸,單位為dp * @param context Activity的上下文 * @return 屏幕高度 單位Dp */ public static int getScreenHeightInDp(Activity context){ DisplayMetrics outMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); int heightDp = outMetrics.heightPixels; return ChangeUnits.px2dp(context, heightDp); } /** * 獲取狀態欄高度 * @param context 上下文 * @return 狀態欄高度 單位像素 */ public static int getStatusBarHeightPixel(Activity context){ Class<?> c = null; Object obj = null; Field field = null; int x = 0, statusBarHeight = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField("status_bar_height"); x = Integer.parseInt(field.get(obj).toString()); statusBarHeight = context.getResources().getDimensionPixelSize(x); } catch (Exception e1) { e1.printStackTrace(); } return statusBarHeight; } /** * 獲取狀態欄高度 * @param context 上下文 * @return 狀態欄高度 單位dp */ public static int getStatusBarHeightInDp(Activity context){ Class<?> c = null; Object obj = null; Field field = null; int x = 0, statusBarHeight = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField("status_bar_height"); x = Integer.parseInt(field.get(obj).toString()); statusBarHeight = context.getResources().getDimensionPixelSize(x); } catch (Exception e1) { e1.printStackTrace(); } return ChangeUnits.px2dp(context, statusBarHeight); } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。