Sobre esas cosas PX, PT, PPI, DPI, DP

Primero presentó a las respectivas definiciones:

Las unidades básicas de la mayoría de una imagen o fotografía en el pixel, pixeles, pantalla electrónica: px

pt : Point, punto, las unidades comunes de la industria de impresión, igual a 1/72 de pulgada
ppi : Pixel por pulgada, el número de píxeles por pulgada, mayor es el valor, más delicado pantalla
dpi : puntos por pulgada, puntos por pulgada, más valor es decir, las imágenes más delicados altos
DP : DIP, pixel independiente de la densidad, Andrews unidad de desarrollo de la longitud que se utilice, la pantalla indica la densidad de píxeles de 160ppi 1DP longitud cuando 1px

SP : Escala de trabajo del píxel independiente, los desarrolladores de Android Tamaño de la fuente de la unidad utilizada.


En donde px, pt, las unidades de DP de longitud, ppi y dpi es una unidad de densidad


densidad LDPI mdpi IPAP xhdpi xxhdpi
densidad 120 160 240 320 480
resolución 240 * 320 320 * 480 480 * 800 720 * 1280 1080 * 1920
Tamaño del icono 36 * 36 48 * 48 72 * 72 96 * 96 144 * 144



ecuación:
= El PPI √ (Y * X * X + Y) / Z longitud fórmula X es el número de píxeles, Y es el número de píxeles de ancho, Z es el tamaño de la pantalla.   
Por ejemplo: Iphone 6S 4,7 pulgadas una densidad de 2000 × 1125 píxeles (2000 + 2000 * 1125. 1125. *) / 4,7 = 488ppi

Los métodos más comunes:

1. Obtiene la altura de la pantalla
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;  
}

2. tomar una densidad pantalla
public static float getScreenDensity(Activity activity) {  
 DisplayMetrics displayMetrics = new DisplayMetrics();  
 activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);  
 return displayMetrics.density;  
}

3. Obtener el ancho de la pantalla de número real dp
public static float getScreenWidthDp(Activity activity) {  
 return getScreenWidth(activity) / getScreenDensity(activity);  
}

4. Obtener el número de la altura de la pantalla es operable dp región
public static float getScreenHeightDp(Activity activity) {  
 return getScreenHeight(activity) / getScreenDensity(activity);  
}

5. Obtener el número de pantallas de ancho real dp
public static float getRealWidthDp(Activity activity) {  
 return getRealWidth(activity) / getScreenDensity(activity);  
}

6. Obtiene la altura del número de dp verdadera pantalla
public static float getRealHeightDp(Activity activity) {  
 return getRealHeight(activity) / getScreenDensity(activity);  
}

7. determina si una placa plana
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;  
}
/** 
* 判断设备是否为大尺寸屏幕 
* 
* @param context 
* @return 
*/  
public static boolean isScreenSizeLarge(Context context) {  
 return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;  
}












Publicado 39 artículos originales · ganado elogios 19 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/u010090644/article/details/51803155
Recomendado
Clasificación