My app decodes a lot of bitmaps from sd card, so I want to reuse existing 
bitmaps to decrease GC work. I see examples from Android 
Training<http://developer.android.com/training/displaying-bitmaps/manage-memory.html#inBitmap>and
 this 
video <http://www.youtube.com/watch?v=rsQet4nBVi8> 
<http://savefrom.net/?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DrsQet4nBVi8&utm_source=chromelite&utm_medium=extensions&utm_campaign=link_modifier>and
 it works perfect for
BitmapFactory.decodeResource<http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeResource%28android.content.res.Resources,%20int,%20android.graphics.BitmapFactory.Options%29>,
 
but not for 
BitmapFactory.decodeFile<http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeFile%28java.lang.String,%20android.graphics.BitmapFactory.Options%29>.
 
I use next code:

private void testBitmapReusing() {
        BitmapFactory.Options options = newOptions();
        Bitmap bitmap = decode(options);

        options.inBitmap = bitmap;
        bitmap = decode(options);
    }

    private BitmapFactory.Options newOptions() {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 1;
        options.inMutable = true;
        return options;
    }

    private Bitmap decode(BitmapFactory.Options options) {
        return  BitmapFactory.decodeFile("/mnt/sdcard/sun.jpg", options);
        //  return BitmapFactory.decodeResource(getResources(), R.drawable.sun, 
options);
    }

Commented code (BitmapFactory.decodeResource) works as expected, it decodes 
new bitmap using existing bitmap. But uncommented code 
(BitmapFactory.decodeFile) doesn't decode new bitmap. It just writes to log 
message "E/BitmapFactory: Unable to decode stream: 
java.lang.IllegalArgumentException: Problem decoding into existing bitmap"

So where is my mistake?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to