ExpectAnim
v1.0.1
描述你的动画并运行!
new ExpectAnim ()
. expect ( avatar )
. toBe (
Expectations ...
)
. toAnimation ()
. start ();
在你的模块中
compile ' com.github.florent37:expectanim:1.0.8 '
此代码描述了上面的视频
new ExpectAnim ()
. expect ( avatar )
. toBe (
bottomOfParent (). withMarginDp ( 16 ),
leftOfParent (). withMarginDp ( 16 ),
width ( 40 ). toDp (). keepRatio ()
)
. expect ( name )
. toBe (
toRightOf ( avatar ). withMarginDp ( 16 ),
sameCenterVerticalAs ( avatar ),
toHaveTextColor ( Color . WHITE )
)
. expect ( subname )
. toBe (
toRightOf ( name ). withMarginDp ( 5 ),
sameCenterVerticalAs ( name ),
toHaveTextColor ( Color . WHITE )
)
. expect ( follow )
. toBe (
rightOfParent (). withMarginDp ( 4 ),
bottomOfParent (). withMarginDp ( 12 ),
toHaveBackgroundAlpha ( 0f )
)
. expect ( message )
. toBe (
aboveOf ( follow ). withMarginDp ( 4 ),
rightOfParent (). withMarginDp ( 4 ),
toHaveBackgroundAlpha ( 0f )
)
. expect ( bottomLayout )
. toBe (
atItsOriginalPosition ()
)
. expect ( content )
. toBe (
atItsOriginalPosition (),
visible ()
)
. toAnimation ()
. setDuration ( 1500 )
. start ();
使用setPercent
应用修改动画的当前步骤
滚动视图示例
this . expectAnimMove = new ExpectAnim ()
. expect ( username )
. toBe (
toRightOf ( avatar ). withMarginDp ( 16 ),
sameCenterVerticalAs ( avatar ),
alpha ( 0.5f )
)
. expect ( avatar )
. toBe (
topOfParent (),
leftOfParent (). withMarginDp ( 16 ),
scale ( 0.5f , 0.5f )
)
. expect ( follow )
. toBe (
rightOfParent (). withMarginDp ( 16 ),
sameCenterVerticalAs ( avatar )
)
. expect ( backbground )
. toBe (
height ( height ). withGravity ( Gravity . LEFT | Gravity . START , Gravity . TOP )
)
. toAnimation ();
scrollView . setOnScrollChangeListener ( new NestedScrollView . OnScrollChangeListener () {
@ Override
public void onScrollChange ( NestedScrollView v , int scrollX , int scrollY , int oldScrollX , int oldScrollY ) {
final float percent = ( scrollY * 1f ) / v . getMaxScrollAmount ();
expectAnimMove . setPercent ( percent );
}
});
您可以使用ExpectAnim.concat
(静态方法)一个接一个地播放动画
ExpectAnim.concat(
new ExpectAnim()
.expect(image1)
.toBe(
withCameraDistance(500f),
flippedHorizontally()
)
.toAnimation()
.setDuration(1000),
new ExpectAnim()
.expect(image2)
.toBe(
withCameraDistance(1000f),
flippedVertically()
)
.toAnimation()
.setDuration(500)
)
.start()
使用setNow
直接应用转换
new ExpectAnim ()
. expect ( view )
. toBe (
outOfScreen ( Gravity . BOTTOM )
)
. toAnimation ()
. setNow ();
使用reset
返回到视图的初始状态
expectAnim . reset ():
new ExpectAnim()
.expect(view)
.toBe(
//.withMargin(marginPx)
//.withMarginDp(margin)
//.withMarginDimen(R.dimen.margin)
toRightOf(view)
toLeftOf(view)
belowOf(view)
aboveOf(view)
atItsOriginalPosition()
sameCenterAs(view, horizontal, vertical)
sameCenterHorizontalAs(view)
sameCenterVerticalAs(view)
centerInParent(horizontal, vertical)
centerVerticalInParent()
centerHorizontalInParent()
centerBetweenViews(view1, view2, horizontal, vertical)
centerBetweenViewAndParent(otherView, horizontal, vertical, toBeOnRight, toBeOnBottom)
topOfParent()
rightOfParent()
bottomOfParent()
leftOfParent()
alignBottom(otherView)
alignTop(otherView)
alignLeft(otherView)
alignRight(otherView)
outOfScreen(gravitiy) //Gravity.LEFT / Gravity.RIGHT / Gravity.TOP / Gravity.BOTTOM
alpha(alpha)
sameAlphaAs(otherView)
visible()
invisible()
//.keepRatio()
//.withGravity(horizontalGravity, verticalGravity)
atItsOriginalScale()
scale(scaleX, scaleY)
height(height)
width(width)
sameScaleAs(otherView)
sameWidthAs(otherView)
sameHeightAs(otherView)
toHaveTextColor(textColor)
toHaveBackgroundAlpha(alpha)
rotated(rotation)
vertical(bottomOfViewAtLeft)
atItsOriginalRotation()
)
-keep class com.github.florent37.expectanim.*{ *; }
-dontwarn com.github.florent37.expectanim.**
添加了开始延迟
添加了 ExpectAnim.concat
固定听众参考
Alpha 0 强制视图不可见`
添加flips
旋转
flippedHorizontally()
flippedVertically()
flippedHorizontallyAndVertically()
withCameraDistance(1000f)
添加rotations
作者:弗洛朗·尚皮尼
博客:http://www.tutos-android-france.com/
Fiches Plateau Moto:https://www.fiches-plateau-moto.fr/
Copyright 2017 florent37, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.