Interface ResourceDecoder<T,Z>
-
- Type Parameters:
T- The type the resource will be decoded from (File, InputStream etc).Z- The type of the decoded resource (Bitmap, Drawable etc).
- All Known Implementing Classes:
BitmapDrawableDecoder,BitmapImageDecoderResourceDecoder,ByteBufferBitmapDecoder,ByteBufferBitmapImageDecoderResourceDecoder,ByteBufferGifDecoder,FileDecoder,GifFrameResourceDecoder,InputStreamBitmapImageDecoderResourceDecoder,ParcelFileDescriptorBitmapDecoder,ResourceBitmapDecoder,ResourceDrawableDecoder,StreamBitmapDecoder,StreamGifDecoder,UnitBitmapDecoder,UnitDrawableDecoder,VideoBitmapDecoder,VideoDecoder
public interface ResourceDecoder<T,Z>An interface for decoding resources.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Resource<Z>decode(T source, int width, int height, Options options)Returns a decoded resource from the given data or null if no resource could be decoded.booleanhandles(T source, Options options)Returnstrueif this decoder is capable of decoding the given source with the given options, andfalseotherwise.
-
-
-
Method Detail
-
handles
boolean handles(@NonNull T source, @NonNull Options options) throws java.io.IOExceptionReturnstrueif this decoder is capable of decoding the given source with the given options, andfalseotherwise.Decoders should make a best effort attempt to quickly determine if they are likely to be able to decode data, but should not attempt to completely read the given data. A typical implementation would check the file headers verify they match content the decoder expects to handle (i.e. a GIF decoder should verify that the image contains the GIF header block.
Decoders that return
truefromhandlesmay still returnnullfromdecode(Object, int, int, Options)if the data is partial or formatted incorrectly.- Throws:
java.io.IOException
-
decode
@Nullable Resource<Z> decode(@NonNull T source, int width, int height, @NonNull Options options) throws java.io.IOException
Returns a decoded resource from the given data or null if no resource could be decoded.The
sourceis managed by the caller, there's no need to close it. The returnedResourcewill bereleasedwhen the engine sees fit.Note - The
widthandheightarguments are hints only, there is no requirement that the decoded resource exactly match the given dimensions. A typical use case would be to use the target dimensions to determine how much to downsample Bitmaps by to avoid overly large allocations.- Parameters:
source- The data the resource should be decoded from.width- The ideal width in pixels of the decoded resource, orTarget.SIZE_ORIGINALto indicate the original resource width.height- The ideal height in pixels of the decoded resource, orTarget.SIZE_ORIGINALto indicate the original resource height.options- A map of string keys to objects that may or may not contain options available to this particular implementation. Implementations should not assume that any or all of their option keys are present. However, implementations may assume that if one of their option keys is present, it's value is non-null and is of the expected type.- Throws:
java.io.IOException- typically only if thesource(InputStream,ParcelFileDescriptoretc) throws while being read.java.lang.OutOfMemoryError- is sometimes thrown if the the request produces an overly large result due to some combination of source size, requested size, source format and requested format. Callers do/must handle this error and implementations can throw this error.java.lang.RuntimeException- is thrown by a variety of decoding libraries, including various Android libraries. Callers do/must handle this error and implementations can throw this exception or, preferably, more detailed subclasses.
-
-