java.lang.OutOfMemoryError: el tamaño del mapa de bits excede el presupuesto de VM

Así que tengo un cargador de imágenes perezoso para miListView. Yo tambien usoeste tutorial para una mejor gestión de la memoria y tenerSoftReference Imágenes de mapa de bits almacenadas en miArrayList.

MiListView funciona carga 8 imágenes de una base de datos y luego una vez que el usuario se desplaza hasta el fondo carga otras 8, etc. No hubo ningún problema cuando había alrededor de 35 imágenes o menos, pero más y mi aplicación Force se cierra conOutOfMemoryError.

Lo que no puedo entender es que tengo mi código dentro de un try catch:

try
{
    BitmapFactory.Options o = new BitmapFactory.Options();
    o.inJustDecodeBounds = true;
    BitmapFactory.decodeByteArray(image, 0, image.length, o);

    //Find the correct scale value. It should be the power of 2.
    int width_tmp = o.outWidth, height_tmp = o.outHeight;
    int scale = 1;

    while(true)
    {
        if(width_tmp/2 < imageWidth || height_tmp/2 < imageHeight)
        {
            break;
        }

        width_tmp/=2;
        height_tmp/=2;
        scale++;
    }

    //Decode with inSampleSize
    BitmapFactory.Options o2 = new BitmapFactory.Options();
    o2.inSampleSize = scale;
    bitmapImage = BitmapFactory.decodeByteArray(image, 0, image.length, o2);        
}
catch (Exception e)
{
    e.printStackTrace();
}

Pero el bloque try catch no atrapa elOutOfMemory excepción y por lo que entiendo elSoftReference Las imágenes de mapa de bits deben borrarse cuando la aplicación se está quedando sin memoria deteniendo elOutOfMemory excepción lanzada.

¿Qué estoy haciendo mal aquí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta