Most visited

Recently visited

Added in API level 14

EdgeEffect

public class EdgeEffect
extends Object

java.lang.Object
   ↳ android.widget.EdgeEffect


当用户滚动超过2D空间中的内容边界时,此类执行可滚动窗口小部件边缘处使用的图形效果。

EdgeEffect是有状态的。 使用EdgeEffect应该创建中要显示的效果,给它使用方法输入数据中的每个边缘一个实例定制窗口小部件onAbsorb(int)onPull(float) ,和onRelease() ,并绘制使用效果draw(Canvas)在窗口小部件的重写draw(Canvas)方法。 如果isFinished()在绘制后返回false,则边缘效果的动画尚未完成,并且该小部件应安排另一个绘制过程以继续动画。

绘图时,小部件应首先绘制其主要内容和子视图,通常通过从重写的draw方法调用super.draw(canvas) (这将调用onDraw并根据需要将绘图派发到子视图。)然后可以使用draw(Canvas)方法在视图的内容上绘制边缘效果。

Summary

Public constructors

EdgeEffect(Context context)

构建一个适合所提供上下文的新主题的EdgeEffect。

Public methods

boolean draw(Canvas canvas)

画到提供的画布上。

void finish()

立即完成当前动画。

int getColor()

在argb中返回此边缘效果的颜色。

int getMaxHeight()

在给定原始 input size返回边缘效果将绘制的最大高度。

boolean isFinished()

报告EdgeEffect的动画是否完成。

void onAbsorb(int velocity)

当效应以给定的速度吸收冲击时调用。

void onPull(float deltaDistance)

一个视图应该在用户将内容从边缘拉开时调用它。

void onPull(float deltaDistance, float displacement)

一个视图应该在用户将内容从边缘拉开时调用它。

void onRelease()

在被拉动后释放对象时调用。

void setColor(int color)

在argb中设置此边缘效果的颜色。

void setSize(int width, int height)

以像素为单位设置此边缘效果的大小。

Inherited methods

From class java.lang.Object

Public constructors

EdgeEffect

Added in API level 14
EdgeEffect (Context context)

构建一个适合所提供上下文的新主题的EdgeEffect。

Parameters
context Context: Context used to provide theming and resource information for the EdgeEffect

Public methods

draw

Added in API level 14
boolean draw (Canvas canvas)

画到提供的画布上。 假定画布已相应地旋转并且大小已设置。 效果将绘制从X = 0到X =宽度的整个宽度,从Y = 0开始并延伸到高度的一些因子<1.f。

Parameters
canvas Canvas: Canvas to draw into
Returns
boolean true if drawing should continue beyond this frame to continue the animation

finish

Added in API level 14
void finish ()

立即完成当前动画。 在这个通话后, isFinished()将返回true。

getColor

Added in API level 21
int getColor ()

在argb中返回此边缘效果的颜色。

Returns
int The color of this edge effect in argb

getMaxHeight

Added in API level 21
int getMaxHeight ()

在给定原始 input size ,返回边缘效应将绘制的最大高度。

Returns
int The maximum height of the edge effect

isFinished

Added in API level 14
boolean isFinished ()

报告EdgeEffect的动画是否完成。 如果在调用draw(Canvas)之后此方法返回false,则主机小部件应安排另一个绘制过程以继续动画。

Returns
boolean true if animation is finished, false if drawing should continue on the next frame.

onAbsorb

Added in API level 14
void onAbsorb (int velocity)

当效应以给定的速度吸收冲击时调用。 在投掷物到达滚动边界时使用。

当使用 ScrollerOverScroller ,方法 getCurrVelocity将提供在此使用的合理近似值。

Parameters
velocity int: Velocity at impact in pixels per second.

onPull

Added in API level 14
void onPull (float deltaDistance)

一个视图应该在用户将内容从边缘拉开时调用它。 这将更新当前视觉效果及其相关动画的状态。 在此之后,主机视图应始终为invalidate()并相应地绘制结果。

当拉伸点的位移 onPull(float, float)时,使用EdgeEffect的视图应该 onPull(float, float)

Parameters
deltaDistance float: 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.

onPull

Added in API level 21
void onPull (float deltaDistance, 
                float displacement)

一个视图应该在用户将内容从边缘拉开时调用它。 这将更新当前视觉效果及其相关动画的状态。 在此之后,主机视图应始终为invalidate()并相应地绘制结果。

Parameters
deltaDistance float: 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.
displacement float: The displacement from the starting side of the effect of the point initiating the pull. In the case of touch this is the finger position. Values may be from 0-1.

onRelease

Added in API level 14
void onRelease ()

在被拉动后释放对象时调用。 这将开始效果的“衰退”阶段。 调用此方法后,主机视图应为invalidate()并据此绘制结果。

setColor

Added in API level 21
void setColor (int color)

在argb中设置此边缘效果的颜色。

Parameters
color int: Color in argb

setSize

Added in API level 14
void setSize (int width, 
                int height)

以像素为单位设置此边缘效果的大小。

Parameters
width int: Effect width in pixels
height int: Effect height in pixels

Hooray!