una tamaño studio resolución resoluciones resolucion redimensionar pantalla cómo cambiar aplicación aplicaciones ajustar adaptar android size screen

tamaño - resoluciones de pantalla android studio



¿Cómo verificar un dispositivo Android es la pantalla HDPI o la pantalla MDPI? (4)

De las respuestas anteriores, las combiné y creé la siguiente función:

public static String getDeviceDensity(Context context){ String deviceDensity = ""; switch (context.getResources().getDisplayMetrics().densityDpi) { case DisplayMetrics.DENSITY_LOW: deviceDensity = 0.75 + " ldpi"; break; case DisplayMetrics.DENSITY_MEDIUM: deviceDensity = 1.0 + " mdpi"; break; case DisplayMetrics.DENSITY_HIGH: deviceDensity = 1.5 + " hdpi"; break; case DisplayMetrics.DENSITY_XHIGH: deviceDensity = 2.0 + " xhdpi"; break; case DisplayMetrics.DENSITY_XXHIGH: deviceDensity = 3.0 + " xxhdpi"; break; case DisplayMetrics.DENSITY_XXXHIGH: deviceDensity = 4.0 + " xxxhdpi"; break; default: deviceDensity = "Not found"; } return deviceDensity; }

Ahora, en qué dispositivo desea obtener la información de densidad y qué carpeta se usará, simplemente agregue el método anterior en esa actividad y agregue la siguiente línea en Crear

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Log.d("Screen Density: ", Helper.getDeviceDensity(this)); }

Quiero verificar esto para buscar diferentes imágenes por internet. ¿Como hacer eso?


En algunos dispositivos (el mío es Galaxy Tab3), tanto la densidad como la densidadDpi devuelven valores extraños como 1.33 (densidad), 213 (densidadDpi). Entonces mi solución es agregar estas banderas:

<tipo de elemento = "bool" name = "is_mdpi"> [bool] </ item>
<tipo de elemento = "bool" name = "is_hdpi"> [bool] </ item>
<tipo de elemento = "bool" name = "is_xhdpi"> [bool] </ item>
<tipo de elemento = "bool" name = "is_xxhdpi"> [bool] </ item>

a 4 archivos values.xml, póngalos en res / values- [xxx] / folders correspondientes.


Puede verificar la densidad de la pantalla con:

switch (getResources().getDisplayMetrics().densityDpi) { case DisplayMetrics.DENSITY_LOW: // ... break; case DisplayMetrics.DENSITY_MEDIUM: // ... break; case DisplayMetrics.DENSITY_HIGH: // ... break; case DisplayMetrics.DENSITY_XHIGH: // ... break; }

EDITAR Tenga en cuenta que a medida que Android evoluciona, se deben incluir otros valores en los switch . A partir de esta edición, esto incluye DisplayMetrics.DENSITY_TV y DisplayMetrics.DENSITY_XXHIGH . Consulte los documentos para obtener la información más reciente; No voy a molestarme en mantener esta respuesta.


density = getResources().getDisplayMetrics().density; // return 0.75 if it''s LDPI // return 1.0 if it''s MDPI // return 1.5 if it''s HDPI // return 2.0 if it''s XHDPI // return 3.0 if it''s XXHDPI // return 4.0 if it''s XXXHDPI