public class ArcMotion
extends PathMotion
java.lang.Object | ||
↳ | android.transition.PathMotion | |
↳ | android.transition.ArcMotion |
PathMotion在包含两个点的虚圆上沿圆弧生成曲线路径。 如果点之间的水平距离小于垂直距离,则圆的中心点将与终点水平对齐。 如果垂直距离小于水平距离,则圆的中心点将与终点垂直对齐。
当两点接近水平或垂直时,运动曲线将会变小,因为圆心与两点都很远。 为了强制路径的曲率,可以使用setMinimumHorizontalAngle(float)
和setMinimumVerticalAngle(float)
来设置两点之间的弧的最小角度。
这可以在XML中用作转换中的元素。
<changeBounds>
<arcMotion android:minimumHorizontalAngle="15"
android:minimumVerticalAngle="0"
android:maximumAngle="90"/>
</changeBounds>
XML attributes |
|
---|---|
android:maximumAngle |
The maximum arc angle in degrees between the start and end points. |
android:minimumHorizontalAngle |
The minimum arc angle in degrees between the start and end points when they are close to horizontal. |
android:minimumVerticalAngle |
The minimum arc angle in degrees between the start and end points when they are close to vertical. |
Public constructors |
|
---|---|
ArcMotion() |
|
ArcMotion(Context context, AttributeSet attrs) |
Public methods |
|
---|---|
float |
getMaximumAngle() 沿着两点之间的圆返回最大弧。 |
float |
getMinimumHorizontalAngle() 沿水平方向对齐的两点之间的圆返回最小圆弧。 |
float |
getMinimumVerticalAngle() 沿垂直方向对齐的两个点之间的圆返回最小圆弧。 |
Path |
getPath(float startX, float startY, float endX, float endY) 提供一个在两点之间插入的路径 |
void |
setMaximumAngle(float angleInDegrees) 设置沿两个点之间的圆的最大弧。 |
void |
setMinimumHorizontalAngle(float angleInDegrees) 沿水平方向对齐的两个点之间的圆圈设置最小圆弧。 |
void |
setMinimumVerticalAngle(float angleInDegrees) 沿垂直方向对齐的两个点之间的圆圈设置最小圆弧。 |
Inherited methods |
|
---|---|
From class android.transition.PathMotion
|
|
From class java.lang.Object
|
起点和终点之间的最大弧度角度。
必须是浮点值,例如“ 1.2
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 maximumAngle
。
相关方法:
开始点和结束点之间接近水平时的最小弧度角度(以度为单位)。
必须是浮点值,例如“ 1.2
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 minimumHorizontalAngle
。
相关方法:
开始点和结束点之间的最小弧度角(以度为单位)接近垂直时。
必须是浮点值,例如“ 1.2
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 minimumVerticalAngle
。
相关方法:
ArcMotion (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
float getMaximumAngle ()
沿着两点之间的圆返回最大弧。 当起点和终点接近x和y的差值时,它们之间的曲线很大。 这迫使弯曲路径具有至多给定角度的弧。
默认值是70度。
相关XML属性:
Returns | |
---|---|
float |
The maximum angle of the arc on a circle describing the Path between the start and end points. |
float getMinimumHorizontalAngle ()
沿水平方向对齐的两点之间的圆返回最小圆弧。 当起点和终点接近水平时,计算得出的圆的中心点将远离两点,从而得到点之间的近直线路径。 通过设置最小角度,这会迫使中心点更近,并给路径赋予夸张的曲线。
默认值是0。
相关XML属性:
Returns | |
---|---|
float |
The minimum arc along the circle between two points aligned near horizontally. |
float getMinimumVerticalAngle ()
沿垂直方向对齐的两个点之间的圆返回最小圆弧。 当起点和终点接近垂直时,计算出的圆的中心点将远离这两个点,从而给出点之间的近直线路径。 通过设置最小角度,这会迫使中心点更近,并给路径赋予夸张的曲线。
默认值是0。
相关XML属性:
Returns | |
---|---|
float |
The minimum angle of the arc on a circle describing the Path between two nearly vertically-separated points. |
Path getPath (float startX, float startY, float endX, float endY)
提供一个在两点之间插入的路径(startX, startY)
和(endX, endY)
。 这允许沿着两个维度进行受控弯曲运动。
Parameters | |
---|---|
startX |
float : The x coordinate of the starting point. |
startY |
float : The y coordinate of the starting point. |
endX |
float : The x coordinate of the ending point. |
endY |
float : The y coordinate of the ending point. |
Returns | |
---|---|
Path |
A Path along which the points should be interpolated. The returned Path must start at point (startX, startY) , typically using moveTo(float, float) and end at (endX, endY) . |
void setMaximumAngle (float angleInDegrees)
设置沿两个点之间的圆的最大弧。 当起点和终点接近x和y的差值时,它们之间的曲线很大。 这迫使弯曲路径具有至多给定角度的弧。
默认值是70度。
相关XML属性:
Parameters | |
---|---|
angleInDegrees |
float : The maximum angle of the arc on a circle describing the Path between the start and end points. |
void setMinimumHorizontalAngle (float angleInDegrees)
沿水平方向对齐的两个点之间的圆圈设置最小圆弧。 当起点和终点接近水平时,计算得出的圆的中心点将远离两点,从而得到点之间的近直线路径。 通过设置最小角度,这会迫使中心点更近,并给路径赋予夸张的曲线。
默认值是0。
相关XML属性:
Parameters | |
---|---|
angleInDegrees |
float : The minimum angle of the arc on a circle describing the Path between two nearly horizontally-separated points. |
void setMinimumVerticalAngle (float angleInDegrees)
沿垂直方向对齐的两个点之间的圆圈设置最小圆弧。 当起点和终点接近垂直时,计算出的圆的中心点将远离这两个点,从而给出点之间的近直线路径。 通过设置最小角度,这会迫使中心点更近,并给路径赋予夸张的曲线。
默认值是0。
相关XML属性:
Parameters | |
---|---|
angleInDegrees |
float : The minimum angle of the arc on a circle describing the Path between two nearly vertically-separated points. |