五分鐘掌握Android屏幕知識(shí)點(diǎn)

關(guān)于PX、PT、PPI、DPI、DP

術(shù)語(yǔ) 說(shuō)明
PX (pixel),像素,屏幕上顯示數(shù)據(jù)的最基本的點(diǎn)
PT (point), 點(diǎn)1pt=1/72英寸
PPI (pixel per inch),每英寸像素?cái)?shù)
DPI (dot per inch),每英寸點(diǎn)數(shù)
DP 即dip(Density-independent pixel), 設(shè)備獨(dú)立像素1dp=160dpi時(shí)1px長(zhǎng)度

其中px, pt, dp為長(zhǎng)度單位,ppi和dpi為密度單位

| 密度 | ldpi | mdpi |hdpi |xhdpi |xxhdpi |
| :-------------: |:-----:| :-----:| :-----:| :-----:|
| 密度值| 120| 160 |240| 320 |480 |
| 分辨率 | 240320 | 320480| 480800 |7201280 |10801920 |
| 圖標(biāo)大小 | 36
36 | 4848 | 7272 |9696| 144144 |

下面提供幾個(gè)常用的方法

  1. 獲取屏幕高度
public int getRealHeight(Activity activity) {  
    int heightPixels = 0;  
    Display display = activity.getWindowManager().getDefaultDisplay();  
    final int VERSION = Build.VERSION.SDK_INT;  
  
    if(VERSION < 13) {  
        display.getHeight();  
    }else if (VERSION == 13) {  
        try {  
            heightPixels = (Integer) Display.class.getMethod("getRawHeight").invoke(display);  
        } catch (Exception e) {  
        }  
    } else {  
        Point realSize = new Point();  
        try {  
            Display.class.getMethod("getRealSize", Point.class).invoke(display, realSize);  
            heightPixels = realSize.y;  
        } catch (Exception e) {  
        }  
    }  
    return heightPixels;  
}  
  1. 獲取屏幕密度
/** 
 * 獲取屏幕密度 
 * @return 
 */  
public static float getScreenDensity(Activity activity) {  
    DisplayMetrics displayMetrics = new DisplayMetrics();  
    activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);  
    return displayMetrics.density;  
}  
  1. 獲取屏幕可操作區(qū)域?qū)挾萪p數(shù)目
/** 
 * 獲取屏幕可操作區(qū)域?qū)挾萪p數(shù)目 
 * 
 * @param activity 
 * @return 
 */  
public static float getScreenWidthDp(Activity activity) {  
    return getScreenWidth(activity) / getScreenDensity(activity);  
} 
  1. 獲取屏幕高度可操作區(qū)域dp數(shù)目
/** 
 * 獲取屏幕高度可操作區(qū)域dp數(shù)目 
 * 
 * @param activity 
 * @return 
 */  
public static float getScreenHeightDp(Activity activity) {  
    return getScreenHeight(activity) / getScreenDensity(activity);  
}  
  1. 獲取屏幕真實(shí)寬度dp數(shù)目
/** 
 * 獲取屏幕真實(shí)寬度dp數(shù)目 
 * 
 * @param activity 
 * @return 
 */  
public static float getRealWidthDp(Activity activity) {  
    return getRealWidth(activity) / getScreenDensity(activity);  
}  
  1. 獲取屏幕真實(shí)高度dp數(shù)目
/** 
 * 獲取屏幕真實(shí)高度dp數(shù)目 
 * 
 * @param activity 
 * @return 
 */  
public static float getRealHeightDp(Activity activity) {  
    return getRealHeight(activity) / getScreenDensity(activity);  
} 
  1. 判斷是否為平板
public static boolean isTablet(Activity activity) {  
    return isMoreThan6Inch(activity) && isScreenSizeLarge(activity);  
}
/** 
 * 判斷是否大于6英寸 
 * @param activity 
 * @return 
 */  
public static boolean isMoreThan6Inch(Activity activity) {  
    return getScreenInch(activity) >= 6.0;  
}  
/** 
 * 判斷設(shè)備是否為大尺寸屏幕 
 * 
 * @param context 
 * @return 
 */  
public static boolean isScreenSizeLarge(Context context) {  
    return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;  
}  

這樣關(guān)于Android屏幕知識(shí)點(diǎn)就算基本講完。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 主要積累一些開(kāi)發(fā)中比較 常用的工具類,部分借鑒于網(wǎng)絡(luò),主要來(lái)源于平時(shí)開(kāi)發(fā)因需求而生的小工具類 13、ArithUt...
    大鴨梨leepear閱讀 727評(píng)論 0 1
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 7,329評(píng)論 0 17
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評(píng)論 25 709
  • 1、撥打電話 public static void call(Context context, String ph...
    jxuanwu閱讀 1,328評(píng)論 0 2
  • 離家不知有多少次,可能大家都麻木了。沒(méi)有人要送我,我還是很失落。 還有一次預(yù)防針沒(méi)打,走時(shí)才想,本來(lái)也沒(méi)有幾天...
    莉莉安lilianan閱讀 230評(píng)論 0 0

友情鏈接更多精彩內(nèi)容