Bitmap is mutable, because I decode it with option inMutable=true. Bitmaps 
have same size, because I decode the same file. But your answer forces me 
to read docs more carefully and I realize my fail! The docs says:
The source content must be in* jpeg or png* format (whether as a resource 
or as a stream)
OMG! My images have GIF format.

By the way thanks!

суббота, 24 августа 2013 г., 11:28:33 UTC+3 пользователь Romain Guy 
(Google) написал:
>
> Here is what the documentation says: "The current implementation 
> necessitates that the reused bitmap be mutable and of the same size as the 
> source content."
>
> Make sure the bitmap you are reusing is mutable.
>
>
> On Sat, Aug 24, 2013 at 12:07 AM, danik <[email protected] 
> <javascript:>>wrote:
>
>> 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 
>> [email protected]<javascript:>
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>
>> 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 [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> -- 
> Romain Guy
> Android framework engineer
> [email protected] <javascript:>
>  

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to