Loading graphics/java/android/graphics/BitmapFactory.java +29 −12 Original line number Original line Diff line number Diff line Loading @@ -56,15 +56,26 @@ public class BitmapFactory { * mutable even when decoding a resource which would normally result in * mutable even when decoding a resource which would normally result in * an immutable bitmap.</p> * an immutable bitmap.</p> * * * <p>You should still always use the returned Bitmap of the decode * method and not assume that reusing the bitmap worked, due to the * constraints outlined above and failure situations that can occur. * Checking whether the return value matches the value of the inBitmap * set in the Options structure will indicate if the bitmap was reused, * but in all cases you should use the Bitmap returned by the decoding * function to ensure that you are using the bitmap that was used as the * decode destination.</p> * * <h3>Usage with BitmapFactory</h3> * * <p>As of {@link android.os.Build.VERSION_CODES#KITKAT}, any * <p>As of {@link android.os.Build.VERSION_CODES#KITKAT}, any * mutable bitmap can be reused to decode any other bitmaps as long as * mutable bitmap can be reused by {@link BitmapFactory} to decode any * the resulting {@link Bitmap#getByteCount() byte count} of the decoded * other bitmaps as long as the resulting {@link Bitmap#getByteCount() * bitmap is less than or equal to the {@link * byte count} of the decoded bitmap is less than or equal to the {@link * Bitmap#getAllocationByteCount() allocated byte count} of the reused * Bitmap#getAllocationByteCount() allocated byte count} of the reused * bitmap. This can be because the intrinsic size is smaller, or its * bitmap. This can be because the intrinsic size is smaller, or its * size post scaling (for density / sample size) is smaller.</p> * size post scaling (for density / sample size) is smaller.</p> * * * <p>Prior to {@link android.os.Build.VERSION_CODES#KITKAT} * <p class="note">Prior to {@link android.os.Build.VERSION_CODES#KITKAT} * additional constraints apply: The image being decoded (whether as a * additional constraints apply: The image being decoded (whether as a * resource or as a stream) must be in jpeg or png format. Only equal * resource or as a stream) must be in jpeg or png format. Only equal * sized bitmaps are supported, with {@link #inSampleSize} set to 1. * sized bitmaps are supported, with {@link #inSampleSize} set to 1. Loading @@ -72,14 +83,17 @@ public class BitmapFactory { * configuration} of the reused bitmap will override the setting of * configuration} of the reused bitmap will override the setting of * {@link #inPreferredConfig}, if set.</p> * {@link #inPreferredConfig}, if set.</p> * * * <p>You should still always use the returned Bitmap of the decode * <h3>Usage with BitmapRegionDecoder</h3> * method and not assume that reusing the bitmap worked, due to the * * constraints outlined above and failure situations that can occur. * <p>BitmapRegionDecoder will draw its requested content into the Bitmap * Checking whether the return value matches the value of the inBitmap * provided, clipping if the output content size (post scaling) is larger * set in the Options structure will indicate if the bitmap was reused, * than the provided Bitmap. The provided Bitmap's width, height, and * but in all cases you should use the Bitmap returned by the decoding * {@link Bitmap.Config} will not be changed. * function to ensure that you are using the bitmap that was used as the * * decode destination.</p> * <p class="note">BitmapRegionDecoder support for {@link #inBitmap} was * introduced in {@link android.os.Build.VERSION_CODES#JELLY_BEAN}. All * formats supported by BitmapRegionDecoder support Bitmap reuse via * {@link #inBitmap}.</p> * * * @see Bitmap#reconfigure(int,int, android.graphics.Bitmap.Config) * @see Bitmap#reconfigure(int,int, android.graphics.Bitmap.Config) */ */ Loading Loading @@ -229,6 +243,9 @@ public class BitmapFactory { * rather than relying on the graphics system scaling it each time it * rather than relying on the graphics system scaling it each time it * is drawn to a Canvas. * is drawn to a Canvas. * * * <p>BitmapRegionDecoder ignores this flag, and will not scale output * based on density. (though {@link #inSampleSize} is supported)</p> * * <p>This flag is turned on by default and should be turned off if you need * <p>This flag is turned on by default and should be turned off if you need * a non-scaled version of the bitmap. Nine-patch bitmaps ignore this * a non-scaled version of the bitmap. Nine-patch bitmaps ignore this * flag and are always scaled. * flag and are always scaled. Loading Loading
graphics/java/android/graphics/BitmapFactory.java +29 −12 Original line number Original line Diff line number Diff line Loading @@ -56,15 +56,26 @@ public class BitmapFactory { * mutable even when decoding a resource which would normally result in * mutable even when decoding a resource which would normally result in * an immutable bitmap.</p> * an immutable bitmap.</p> * * * <p>You should still always use the returned Bitmap of the decode * method and not assume that reusing the bitmap worked, due to the * constraints outlined above and failure situations that can occur. * Checking whether the return value matches the value of the inBitmap * set in the Options structure will indicate if the bitmap was reused, * but in all cases you should use the Bitmap returned by the decoding * function to ensure that you are using the bitmap that was used as the * decode destination.</p> * * <h3>Usage with BitmapFactory</h3> * * <p>As of {@link android.os.Build.VERSION_CODES#KITKAT}, any * <p>As of {@link android.os.Build.VERSION_CODES#KITKAT}, any * mutable bitmap can be reused to decode any other bitmaps as long as * mutable bitmap can be reused by {@link BitmapFactory} to decode any * the resulting {@link Bitmap#getByteCount() byte count} of the decoded * other bitmaps as long as the resulting {@link Bitmap#getByteCount() * bitmap is less than or equal to the {@link * byte count} of the decoded bitmap is less than or equal to the {@link * Bitmap#getAllocationByteCount() allocated byte count} of the reused * Bitmap#getAllocationByteCount() allocated byte count} of the reused * bitmap. This can be because the intrinsic size is smaller, or its * bitmap. This can be because the intrinsic size is smaller, or its * size post scaling (for density / sample size) is smaller.</p> * size post scaling (for density / sample size) is smaller.</p> * * * <p>Prior to {@link android.os.Build.VERSION_CODES#KITKAT} * <p class="note">Prior to {@link android.os.Build.VERSION_CODES#KITKAT} * additional constraints apply: The image being decoded (whether as a * additional constraints apply: The image being decoded (whether as a * resource or as a stream) must be in jpeg or png format. Only equal * resource or as a stream) must be in jpeg or png format. Only equal * sized bitmaps are supported, with {@link #inSampleSize} set to 1. * sized bitmaps are supported, with {@link #inSampleSize} set to 1. Loading @@ -72,14 +83,17 @@ public class BitmapFactory { * configuration} of the reused bitmap will override the setting of * configuration} of the reused bitmap will override the setting of * {@link #inPreferredConfig}, if set.</p> * {@link #inPreferredConfig}, if set.</p> * * * <p>You should still always use the returned Bitmap of the decode * <h3>Usage with BitmapRegionDecoder</h3> * method and not assume that reusing the bitmap worked, due to the * * constraints outlined above and failure situations that can occur. * <p>BitmapRegionDecoder will draw its requested content into the Bitmap * Checking whether the return value matches the value of the inBitmap * provided, clipping if the output content size (post scaling) is larger * set in the Options structure will indicate if the bitmap was reused, * than the provided Bitmap. The provided Bitmap's width, height, and * but in all cases you should use the Bitmap returned by the decoding * {@link Bitmap.Config} will not be changed. * function to ensure that you are using the bitmap that was used as the * * decode destination.</p> * <p class="note">BitmapRegionDecoder support for {@link #inBitmap} was * introduced in {@link android.os.Build.VERSION_CODES#JELLY_BEAN}. All * formats supported by BitmapRegionDecoder support Bitmap reuse via * {@link #inBitmap}.</p> * * * @see Bitmap#reconfigure(int,int, android.graphics.Bitmap.Config) * @see Bitmap#reconfigure(int,int, android.graphics.Bitmap.Config) */ */ Loading Loading @@ -229,6 +243,9 @@ public class BitmapFactory { * rather than relying on the graphics system scaling it each time it * rather than relying on the graphics system scaling it each time it * is drawn to a Canvas. * is drawn to a Canvas. * * * <p>BitmapRegionDecoder ignores this flag, and will not scale output * based on density. (though {@link #inSampleSize} is supported)</p> * * <p>This flag is turned on by default and should be turned off if you need * <p>This flag is turned on by default and should be turned off if you need * a non-scaled version of the bitmap. Nine-patch bitmaps ignore this * a non-scaled version of the bitmap. Nine-patch bitmaps ignore this * flag and are always scaled. * flag and are always scaled. Loading