public class

FadeDrawable

extends ArrayDrawable
java.lang.Object
   ↳ android.graphics.drawable.Drawable
     ↳ com.facebook.drawee.drawable.ArrayDrawable
       ↳ com.facebook.drawee.drawable.FadeDrawable

Class Overview

A drawable that fades to the specific layer.

Arbitrary number of layers is supported. 5 Different fade methods are supported. Once the transition starts we will animate layers in or out based on used fade method. fadeInLayer fades in specified layer to full opacity. fadeOutLayer fades out specified layer to zero opacity. fadeOutAllLayers fades out all layers to zero opacity. fadeToLayer fades in specified layer to full opacity, fades out all other layers to zero opacity. fadeUpToLayer fades in all layers up to specified layer to full opacity and fades out all other layers to zero opacity.

Summary

Nested Classes
interface FadeDrawable.OnFadeListener  
Constants
int TRANSITION_NONE No transition will be applied.
int TRANSITION_RUNNING The transition has started and the animation is in progress.
int TRANSITION_STARTING A transition is about to start.
Public Constructors
FadeDrawable(Drawable[] layers)
Creates a new fade drawable.
FadeDrawable(Drawable[] layers, boolean allLayersVisible, int actualImageLayer)
Creates a new fade drawable.
Public Methods
void beginBatchMode()
Begins the batch mode so that it doesn't invalidate self on every operation.
void draw(Canvas canvas)
void endBatchMode()
Ends the batch mode and invalidates.
void fadeInAllLayers()
Starts fading in all layers.
void fadeInLayer(int index)
Starts fading in the specified layer.
void fadeOutAllLayers()
Starts fading out all layers.
void fadeOutLayer(int index)
Starts fading out the specified layer.
void fadeToLayer(int index)
Starts fading to the specified layer.
void fadeUpToLayer(int index)
Starts fading up to the specified layer.
void finishTransitionImmediately()
Finishes transition immediately.
int getAlpha()
int getTransitionDuration()
Gets the transition duration.
int getTransitionState()
Gets the transition state (STARTING, RUNNING, NONE).
void hideLayerImmediately(int index)
Makes the specified layer fully transparent
void invalidateSelf()
boolean isDefaultLayerIsOn()
boolean isLayerOn(int index)
void reset()
Resets to the initial state.
void setAlpha(int alpha)
void setOnFadeListener(FadeDrawable.OnFadeListener onFadeListener)
void setTransitionDuration(int durationMs)
Sets the duration of the current transition in milliseconds.
void showLayerImmediately(int index)
Makes the specified layer fully opaque
Protected Methods
long getCurrentTimeMs()
Returns current time.
[Expand]
Inherited Methods
From class com.facebook.drawee.drawable.ArrayDrawable
From class android.graphics.drawable.Drawable
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface com.facebook.drawee.drawable.TransformAwareDrawable
From interface com.facebook.drawee.drawable.TransformCallback

Constants

public static final int TRANSITION_NONE

No transition will be applied.

Constant Value: 2 (0x00000002)

public static final int TRANSITION_RUNNING

The transition has started and the animation is in progress.

Constant Value: 1 (0x00000001)

public static final int TRANSITION_STARTING

A transition is about to start.

Constant Value: 0 (0x00000000)

Public Constructors

public FadeDrawable (Drawable[] layers)

Creates a new fade drawable. The first layer is displayed with full opacity whereas all other layers are invisible.

Parameters
layers layers to fade between

public FadeDrawable (Drawable[] layers, boolean allLayersVisible, int actualImageLayer)

Creates a new fade drawable. The first layer is displayed with full opacity whereas all other layers are invisible if allLayersVisible is false. Otherwise, all layers will be displayed with full opacity.

Parameters
layers layers to fade between
allLayersVisible true if all layers should be visible per default
actualImageLayer The index of the layer that contains the actual image

Public Methods

public void beginBatchMode ()

Begins the batch mode so that it doesn't invalidate self on every operation.

public void draw (Canvas canvas)

public void endBatchMode ()

Ends the batch mode and invalidates.

public void fadeInAllLayers ()

Starts fading in all layers.

public void fadeInLayer (int index)

Starts fading in the specified layer.

Parameters
index the index of the layer to fade in.

public void fadeOutAllLayers ()

Starts fading out all layers.

public void fadeOutLayer (int index)

Starts fading out the specified layer.

Parameters
index the index of the layer to fade out.

public void fadeToLayer (int index)

Starts fading to the specified layer.

Parameters
index the index of the layer to fade to

public void fadeUpToLayer (int index)

Starts fading up to the specified layer.

Layers up to the specified layer inclusive will fade in, other layers will fade out.

Parameters
index the index of the layer to fade up to.

public void finishTransitionImmediately ()

Finishes transition immediately.

public int getAlpha ()

public int getTransitionDuration ()

Gets the transition duration.

Returns
  • transition duration in milliseconds.

public int getTransitionState ()

Gets the transition state (STARTING, RUNNING, NONE). Useful for testing purposes.

Returns
  • transition state

public void hideLayerImmediately (int index)

Makes the specified layer fully transparent

Parameters
index the index of the layer to be hidden

public void invalidateSelf ()

public boolean isDefaultLayerIsOn ()

public boolean isLayerOn (int index)

public void reset ()

Resets to the initial state.

public void setAlpha (int alpha)

public void setOnFadeListener (FadeDrawable.OnFadeListener onFadeListener)

public void setTransitionDuration (int durationMs)

Sets the duration of the current transition in milliseconds.

public void showLayerImmediately (int index)

Makes the specified layer fully opaque

Parameters
index the index of the layer to be shown

Protected Methods

protected long getCurrentTimeMs ()

Returns current time. Absolute reference is not important as only time deltas are used. Extracting this to a separate method allows better testing.

Returns
  • current time in milliseconds