public class

AnimatedDrawableBackendImpl

extends Object
implements AnimatedDrawableBackend
java.lang.Object
   ↳ com.facebook.imagepipeline.animated.impl.AnimatedDrawableBackendImpl

Class Overview

An AnimatedDrawableBackend that renders AnimatedImage.

Summary

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

Public Constructors

public AnimatedDrawableBackendImpl (AnimatedDrawableUtil animatedDrawableUtil, AnimatedImageResult animatedImageResult, Rect bounds)

Public Methods

public synchronized void dropCaches ()

Instructs the backend to drop its caches.

public 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 AnimatedImageResult getAnimatedImageResult ()

Gets the original result of the decode.

Returns
  • the original result of the code

public int getDurationMs ()

Gets the duration of the animation.

Returns
  • the duration of the animation in milliseconds

public int getDurationMsForFrame (int frameNumber)

Gets the duration of the specified frame.

Parameters
frameNumber the frame number
Returns
  • the time in milliseconds

public int getFrameCount ()

Gets the number of frames in the animation.

Returns
  • the number of frames in the animation

public int getFrameForPreview ()

Gets the frame number to use for the preview frame.

Returns
  • the frame number to use for the preview frame

public 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 AnimatedDrawableFrameInfo getFrameInfo (int frameNumber)

Gets info about the specified frame.

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

public int getHeight ()

Gets the height of the image.

Returns
  • the height of the image

public int getLoopCount ()

Gets the number of loops to run the animation for.

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

public synchronized 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 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 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 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 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 int getWidth ()

Gets the width of the image.

Returns
  • the width of the image

public boolean hasPreDecodedFrame (int index)

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
index the index of the frame to get
Returns
  • true if the result has the decoded frame

public 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

public void renderImageDoesNotSupportScaling (Canvas canvas, AnimatedImageFrame frame)