java.lang.Object | |
↳ | android.widget.EdgeEffect |
This class performs the graphical effect used at the edges of scrollable widgets when the user scrolls beyond the content bounds in 2D space.
EdgeEffect is stateful. Custom widgets using EdgeEffect should create an
instance for each edge that should show the effect, feed it input data using
the methods onAbsorb(int)
, onPull(float)
, and onRelease()
,
and draw the effect using draw(Canvas)
in the widget's overridden
draw(Canvas)
method. If isFinished()
returns
false after drawing, the edge effect's animation is not yet complete and the widget
should schedule another drawing pass to continue the animation.
When drawing, widgets should draw their main content and child views first,
usually by invoking super.draw(canvas)
from an overridden draw
method. (This will invoke onDraw and dispatch drawing to child views as needed.)
The edge effect may then be drawn on top of the view's content using the
draw(Canvas)
method.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Construct a new EdgeEffect with a theme appropriate for the provided context.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Draw into the provided canvas.
| |||||||||||
Immediately finish the current animation.
| |||||||||||
Reports if this EdgeEffect's animation is finished.
| |||||||||||
Call when the effect absorbs an impact at the given velocity.
| |||||||||||
A view should call this when content is pulled away from an edge by the user.
| |||||||||||
Call when the object is released after being pulled.
| |||||||||||
Set the size of this edge effect in pixels.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Construct a new EdgeEffect with a theme appropriate for the provided context.
context | Context used to provide theming and resource information for the EdgeEffect |
---|
Draw into the provided canvas. Assumes that the canvas has been rotated accordingly and the size has been set. The effect will be drawn the full width of X=0 to X=width, beginning from Y=0 and extending to some factor < 1.f of height.
canvas | Canvas to draw into |
---|
Immediately finish the current animation.
After this call isFinished()
will return true.
Reports if this EdgeEffect's animation is finished. If this method returns false
after a call to draw(Canvas)
the host widget should schedule another
drawing pass to continue the animation.
Call when the effect absorbs an impact at the given velocity. Used when a fling reaches the scroll boundary.
When using a Scroller
or OverScroller
,
the method getCurrVelocity
will provide a reasonable approximation
to use here.
velocity | Velocity at impact in pixels per second. |
---|
A view should call this when content is pulled away from an edge by the user.
This will update the state of the current visual effect and its associated animation.
The host view should always invalidate()
after this
and draw the results accordingly.
deltaDistance | Change in distance since the last call. Values may be 0 (no change) to 1.f (full length of the view) or negative values to express change back toward the edge reached to initiate the effect. |
---|
Call when the object is released after being pulled.
This will begin the "decay" phase of the effect. After calling this method
the host view should invalidate()
and thereby
draw the results accordingly.
Set the size of this edge effect in pixels.
width | Effect width in pixels |
---|---|
height | Effect height in pixels |