public class

KeepLastFrameCache

extends Object
implements BitmapFrameCache
java.lang.Object
   ↳ com.facebook.fresco.animation.bitmap.cache.KeepLastFrameCache

Class Overview

Simple bitmap cache that keeps the last frame and reuses it if possible.

Summary

Public Constructors
KeepLastFrameCache()
Public Methods
synchronized void clear()
Clear the cache.
synchronized CloseableReference<Bitmap> getBitmapToReuseForFrame(int frameNumber, int width, int height)
Return a reusable bitmap that should be used to render the given frame.
synchronized CloseableReference<Bitmap> getCachedFrame(int frameNumber)
Get the cached frame for the given frame number.
synchronized CloseableReference<Bitmap> getFallbackFrame(int frameNumber)
Get a fallback frame for the given frame number.
synchronized int getSizeInBytes()
synchronized void onFrameRendered(int frameNumber, CloseableReference<Bitmap> bitmap, int frameType)
Callback when the given bitmap has been drawn to a canvas.
void setFrameCacheListener(BitmapFrameCache.FrameCacheListener frameCacheListener)
Set a frame cache listener that gets notified about caching events.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.facebook.fresco.animation.bitmap.BitmapFrameCache

Public Constructors

public KeepLastFrameCache ()

Public Methods

public synchronized void clear ()

Clear the cache.

public synchronized CloseableReference<Bitmap> getBitmapToReuseForFrame (int frameNumber, int width, int height)

Return a reusable bitmap that should be used to render the given frame.

Parameters
frameNumber the frame number to be rendered
width the width of the target bitmap
height the height of the target bitmap
Returns
  • the reusable bitmap or null if no reusable bitmaps available

public synchronized CloseableReference<Bitmap> getCachedFrame (int frameNumber)

Get the cached frame for the given frame number.

Parameters
frameNumber the frame number to get the cached frame for
Returns
  • the cached frame or null if not cached

public synchronized CloseableReference<Bitmap> getFallbackFrame (int frameNumber)

Get a fallback frame for the given frame number. This method is called if all other attempts to draw a frame failed. The bitmap returned could for example be the last drawn frame (if any).

Parameters
frameNumber the frame number to get the fallback
Returns
  • the fallback frame or null if not cached

public synchronized int getSizeInBytes ()

public synchronized void onFrameRendered (int frameNumber, CloseableReference<Bitmap> bitmap, int frameType)

Callback when the given bitmap has been drawn to a canvas. This bitmap can either be a reused bitmap returned by getBitmapToReuseForFrame(int, int, int) or a new bitmap. Note: the implementation of this interface has to manually clone the given bitmap reference if it wants to hold on to the bitmap. The original reference will be automatically closed after this call.

Parameters
frameNumber the frame number that has been rendered
bitmap the bitmap that has been rendered
frameType the frame type that has been rendered

public void setFrameCacheListener (BitmapFrameCache.FrameCacheListener frameCacheListener)

Set a frame cache listener that gets notified about caching events.

Parameters
frameCacheListener the listener to use