Calcular PPI del dispositivo Android

¿Cómo puedo calcular PPI del dispositivo Android. Más específicamente tabletas Android. Tome una nota que quiero calcular PPI del dispositivo y no DPI.

Es fácil como uno-dos-gratis =) Vamos a caculate PPI a Nexus 5 , por ejemplo.

float LCD_Diagonal = 4.95f; int screenHeightPx = 1920; int screenWidthPx = 1080; float PPI = (float)Math.sqrt((double)(screenWidthPx*screenWidthPx + screenHeightPx*screenHeightPx))/LCD_Diagonal; Log.e(TAG, "display_page_screen_ppi: " + String.format(Locale.getDefault(),"%d %s", Math.round(diagonal_density), "ppi")); 

En el resultado tenemos 445 ppi que es verdad según especificaciones .

PPI

La densidad de pantalla se cita como Pixels Per Inch, PPI, y es el número de píxeles que encajan en una pulgada. Cuanto más alto sea el número, entonces las imágenes más nítidas se verán en la pantalla, por lo que los consumidores consideran que una cifra alta de PPI es una ventaja al comprar un dispositivo. A veces la cifra se cita como Dots Per Inch, DPI, aunque el uso de DPI es confuso como viene de la terminología de impresión, y puede referirse a la sensibilidad de los sensores en escáneres digitales y cámaras digitales. Para pantallas de Android cuando se trata de PPI vs DPI uso PPI y dejar DPI para referirse a las impresoras, donde es realmente una medida diferente (porque los puntos necesarios para producir imágenes de alta calidad en el papel son de mayor densidad).

La cifra PPI para una pantalla se puede calcular dada la resolución (número de píxeles xyy) y el tamaño (medida diagonal del área visible) de una pantalla. Utilice el teorema de Pitágoras para calcular el número de píxeles en la diagonal y luego divida el resultado por el tamaño de la pantalla. Ie PPI = (raíz cuadrada de x ^ 2 + y ^ 2) / tamaño de pantalla

Segunda opción

 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); // Display device width and height in pixels screenHeightpx = dm.heightPixels; screenWidthpx = dm.widthPixels; 

Para eso necesitas tomar la diaplaymatrix.

 DisplayMetrics dm = getResources().getDisplayMetrics(); int height = dm.heightPixels; int width = dm.widthPixels; 
  • El dispositivo no se muestra en DDMS
  • Eclipse detectando el mismo dispositivo varias veces
  • ¿Cómo ejecutar logcat en varios dispositivos?
  • Dispositivo NO COMPATIBLE para Android Studio
  • No se puede conectar a bluetooth Dispositivos de dispositivos de salud utilizando Android BluetoothProfile
  • La publicación de Android en Facebook no funciona cuando la aplicación de Facebook ya está instalada en el dispositivo
  • Depuración USB: Cómo revocar la opción "Permitir siempre desde este equipo"
  • Transformación de los datos del acelerómetro de las coordenadas del dispositivo a las coordenadas del mundo real
  • ¿Es posible hacer que mi aplicación funcione en modo seguro?
  • Está agregando skins android personalizados a dispositivos virtuales que faltan en ADT Eclipse (Juno)
  • Diferentes valores entre los sensores TYPE_ACCELEROMETER / TYPE_MAGNETIC_FIELD y TYPE_ORIENTATION
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.