Android: ancho y altura máximos permitidos de mapa de bits

Estoy creando una aplicación que necesita decodificar imágenes grandes a mapas de bits para mostrarlas en un ImageView.

Si intento descodificarlos directamente a un mapa de bits, aparece el siguiente error: "Mapa de bits demasiado grande para cargarlo en una textura (1944x2592, máx = 2048x2048)"

Entonces, para poder mostrar imágenes con una resolución demasiado alta, estoy usando:

Bitmap bitmap = BitmapFactory.decodeFile(path);

if(bitmap.getHeight()>=2048||bitmap.getWidth()>=2048){
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    bitmap =Bitmap.createScaledBitmap(bitmap, width, height, true);             
}

Esto funciona pero realmente no quiero codificar el valor máximo de 2048 como lo tengo en la declaración if ahora, pero no puedo encontrar la forma de obtener el tamaño máximo permitido del mapa de bits para un dispositivo

¿Algunas ideas?

Respuestas a la pregunta(5)

Su respuesta a la pregunta