Cómo lidiar con la excepción OutOfMemory

Estoy usando la biblioteca Volley en mi proyecto pero tengo un problema con la excepción OutOfMemory. En mi aplicación, estoy descargando pulgares e imágenes a tamaño completo desde el servidor a través de NetworkImageView usandosetImageUrl método. Estoy usando BitmapLruCache:

public class BitmapLruCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache {

    public static int getDefaultLruCacheSize() {
        final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
        final int cacheSize = maxMemory / 8;

        return cacheSize;
    }

    public BitmapLruCache() {
        this(getDefaultLruCacheSize());
    }

    public BitmapLruCache(int sizeInKiloBytes) {
        super(sizeInKiloBytes);
    }

    @Override
    protected int sizeOf(String key, Bitmap value) {
        return value.getRowBytes() * value.getHeight() / 1024;
    }

    @Override
    public Bitmap getBitmap(String url) {
        return get(url);
    }


    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        put(url, bitmap);
    }
}

Me estoy poniendoOutOfMemoryException en HTC Desire (Android 2.2.2). ¿Cómo puedo lidiar con esta excepción? ¿Está algo mal que estoy haciendo?

Editar

Esta excepción la obtuve durante la prueba de monos:

java.lang.OutOfMemoryError at com.android.volley.toolbox.ByteArrayPool.getBuf (ByteArrayPool.java:101) en com.android.volley.toolbox.ut.P.P. toolbox.PoolingByteArrayOutputStream.write (PoolingByteArrayOutputStream.java:84) en com.android.volley.toolbox.BasicNetwork.entityToBytesNassicNP.P.P.P.P.P.P. en com.android.volley.NetworkDispatcher.run (NetworkDispatcher.java:105)

@Sipka - no resuelve mi problema

@Muhammad Babar - La biblioteca de Volley maneja todas las operaciones de red / mapa de bits / caché, así que necesito una solución para arreglar la excepción de OutOfMemory causada por Volley.

Respuestas a la pregunta(1)

Su respuesta a la pregunta