public interface

AnimatedDrawableBackend

com.facebook.imagepipeline.animated.base.AnimatedDrawableBackend

Class Overview

Interface that AnimatedDrawable uses that abstracts out the image format.

Summary

Public Methods
abstract void dropCaches()
Instructs the backend to drop its caches.
abstract AnimatedDrawableBackend forNewBounds(Rect bounds)
Creates a new AnimatedDrawableBackend with the same parameters but with a new bounds.
abstract AnimatedImageResult getAnimatedImageResult()
Gets the original result of the decode.
abstract int getDurationMs()
Gets the duration of the animation.
abstract int getDurationMsForFrame(int frameNumber)
Gets the duration of the specified frame.
abstract int getFrameCount()
Gets the number of frames in the animation.
abstract int getFrameForPreview()
Gets the frame number to use for the preview frame.
abstract int getFrameForTimestampMs(int timestampMs)
Gets the frame index for specified timestamp.
abstract AnimatedDrawableFrameInfo getFrameInfo(int frameNumber)
Gets info about the specified frame.
abstract int getHeight()
Gets the height of the image.
abstract int getLoopCount()
Gets the number of loops to run the animation for.
abstract int getMemoryUsage()
Gets the number of bytes currently used by the backend for caching (for debugging)
abstract CloseableReference<Bitmap> getPreDecodedFrame(int frameNumber)
Gets a pre-decoded frame.
abstract int getRenderedHeight()
Gets the rendered height of the image.
abstract int getRenderedWidth()
Gets the rendered width of the image.
abstract int getTimestampMsForFrame(int frameNumber)
Gets the timestamp relative to the first frame that this frame number starts at.
abstract int getWidth()
Gets the width of the image.
abstract boolean hasPreDecodedFrame(int frameNumber)
Gets whether it has the decoded frame.
abstract void renderFrame(int frameNumber, Canvas canvas)
Renders the specified frame onto the canvas.

Public Methods

public abstract void dropCaches ()

Instructs the backend to drop its caches.

public abstract AnimatedDrawableBackend forNewBounds (Rect bounds)

Creates a new AnimatedDrawableBackend with the same parameters but with a new bounds.

Parameters
bounds the bounds
Returns
  • an AnimatedDrawableBackend with the new bounds (this may be the same instance if the bounds don't require a new backend)

public abstract AnimatedImageResult getAnimatedImageResult ()

Gets the original result of the decode.

Returns
  • the original result of the code

public abstract int getDurationMs ()

Gets the duration of the animation.

Returns
  • the duration of the animation in milliseconds

public abstract int getDurationMsForFrame (int frameNumber)

Gets the duration of the specified frame.

Parameters
frameNumber the frame number
Returns
  • the time in milliseconds

public abstract int getFrameCount ()

Gets the number of frames in the animation.

Returns
  • the number of frames in the animation

public abstract int getFrameForPreview ()

Gets the frame number to use for the preview frame.

Returns
  • the frame number to use for the preview frame

public abstract int getFrameForTimestampMs (int timestampMs)

Gets the frame index for specified timestamp.

Parameters
timestampMs the timestamp
Returns
  • the frame index for the timestamp or the last frame number if the timestamp is outside the duration of the entire animation

public abstract AnimatedDrawableFrameInfo getFrameInfo (int frameNumber)

Gets info about the specified frame.

Parameters
frameNumber the frame number (0-based)
Returns
  • the frame info

public abstract int getHeight ()

Gets the height of the image.

Returns
  • the height of the image

public abstract int getLoopCount ()

Gets the number of loops to run the animation for.

Returns
  • the number of loops, or 0 to indicate infinite

public abstract int getMemoryUsage ()

Gets the number of bytes currently used by the backend for caching (for debugging)

Returns
  • the number of bytes currently used by the backend for caching

public abstract CloseableReference<Bitmap> getPreDecodedFrame (int frameNumber)

Gets a pre-decoded frame. This will only return non-null if the ImageDecodeOptions were configured to decode all frames at decode time.

Parameters
frameNumber the index of the frame to get
Returns
  • a reference to the preview bitmap which must be released by the caller when done or null if there is no preview bitmap set

public abstract int getRenderedHeight ()

Gets the rendered height of the image. This may be smaller than the underlying image height if the image is being rendered to a small bounds or to reduce memory requirements.

Returns
  • the rendered height of the image

public abstract int getRenderedWidth ()

Gets the rendered width of the image. This may be smaller than the underlying image width if the image is being rendered to a small bounds or to reduce memory requirements.

Returns
  • the rendered width of the image

public abstract int getTimestampMsForFrame (int frameNumber)

Gets the timestamp relative to the first frame that this frame number starts at.

Parameters
frameNumber the frame number
Returns
  • the time in milliseconds

public abstract int getWidth ()

Gets the width of the image.

Returns
  • the width of the image

public abstract boolean hasPreDecodedFrame (int frameNumber)

Gets whether it has the decoded frame. This will only return true if the ImageDecodeOptions were configured to decode all frames at decode time.

Parameters
frameNumber the index of the frame to get
Returns
  • true if the result has the decoded frame

public abstract void renderFrame (int frameNumber, Canvas canvas)

Renders the specified frame onto the canvas.

Parameters
frameNumber the frame number (0-based)
canvas the canvas to render onto