Expose ImageDecoder#createSource(byte[] (, int, int))
Bug: 152322291 Test: Ib50eba48e3557a0147b95dd6ce3e8589ab07c127 These methods are used in various places in the system, and the system will not be able to access them as @hidden APIs once ImageDecoder is part of a mainline module. They were originally hidden to discourage clients from keeping the encoded data allocated in a large buffer, especially for animated images. But this is already possible using a ByteBuffer. Change-Id: If5350d4f2ff88ac634e48b9224d70954fd312d30
This commit is contained in:
@@ -14678,6 +14678,8 @@ package android.graphics {
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull android.content.res.Resources, int);
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull android.content.ContentResolver, @NonNull android.net.Uri);
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull android.content.res.AssetManager, @NonNull String);
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull byte[], int, int) throws java.lang.ArrayIndexOutOfBoundsException;
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull byte[]);
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull java.nio.ByteBuffer);
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull java.io.File);
|
||||
method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull java.util.concurrent.Callable<android.content.res.AssetFileDescriptor>);
|
||||
|
||||
@@ -944,6 +944,12 @@ public final class ImageDecoder implements AutoCloseable {
|
||||
/**
|
||||
* Create a new {@link Source Source} from a byte array.
|
||||
*
|
||||
* <p>Note: If this {@code Source} is passed to {@link #decodeDrawable decodeDrawable},
|
||||
* and the encoded image is animated, the returned {@link AnimatedImageDrawable}
|
||||
* will continue reading from {@code data}, so its contents must not
|
||||
* be modified, even after the {@code AnimatedImageDrawable} is returned.
|
||||
* {@code data}'s contents should never be modified during decode.</p>
|
||||
*
|
||||
* @param data byte array of compressed image data.
|
||||
* @param offset offset into data for where the decoder should begin
|
||||
* parsing.
|
||||
@@ -954,7 +960,6 @@ public final class ImageDecoder implements AutoCloseable {
|
||||
* @throws NullPointerException if data is null.
|
||||
* @throws ArrayIndexOutOfBoundsException if offset and length are
|
||||
* not within data.
|
||||
* @hide
|
||||
*/
|
||||
@AnyThread
|
||||
@NonNull
|
||||
@@ -972,8 +977,19 @@ public final class ImageDecoder implements AutoCloseable {
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link #createSource(byte[], int, int).
|
||||
* @hide
|
||||
* Create a new {@link Source Source} from a byte array.
|
||||
*
|
||||
* <p>Note: If this {@code Source} is passed to {@link #decodeDrawable decodeDrawable},
|
||||
* and the encoded image is animated, the returned {@link AnimatedImageDrawable}
|
||||
* will continue reading from {@code data}, so its contents must not
|
||||
* be modified, even after the {@code AnimatedImageDrawable} is returned.
|
||||
* {@code data}'s contents should never be modified during decode.</p>
|
||||
*
|
||||
* @param data byte array of compressed image data.
|
||||
* @return a new Source object, which can be passed to
|
||||
* {@link #decodeDrawable decodeDrawable} or
|
||||
* {@link #decodeBitmap decodeBitmap}.
|
||||
* @throws NullPointerException if data is null.
|
||||
*/
|
||||
@AnyThread
|
||||
@NonNull
|
||||
|
||||
Reference in New Issue
Block a user