CanAnimation组建动画队列

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-4-12 14:51:17
Tag:CanAnimation 组建 动画 队列

项目介绍:

Permalink
Failed to load latest commit information.
app fix bug
cananimation fix bug
gradle/wrapper build
pic build
.gitignore build
LICENSE Initial commit
README.md Update README.md
build.gradle build
gradle.properties fix bug
gradlew build
gradlew.bat build
settings.gradle build

CanAnimation



使用android属性动画写的一个库,可组建动画队列,可实现同时、顺序、重复播放等。


添加依赖



compile 'com.canyinghao:cananimation:1.0.2'


使用方式



1. 使用方法

CanAnimation是一个动画库,可按队列播放动画。CanObjectAnimator类是使用ObjectAnimator写的动画,使用时需要传一些初始值,不然会有问题,比如移动到(500,500),你下一个移动动画要传(500,500)才能连上上一个动画,不方便。所以推荐使用CanValueAnimator类。CanValueAnimator类继承自ValueAnimator,通过反射设置属性值,而且重写start()方法,在start()方法中获取view的初始值,不用传如初始值,使用相当方便。



CanObjectAnimator使用代码:



  CanObjectAnimator builder = CanObjectAnimator.on(view);


animationSequence(builder.moveTo(center.x, center.y, 0),

animationTogether(builder.moveTo(center.x,newPos.x,center.y, newPos.y, 2),
builder.rotateTo(360, 2),
builder.color(Color.BLUE, Color.RED, 2),
builder.colorText(Color.WHITE, Color.BLUE, 2)


),
animationTogether(builder.scaleTo(0.5f, 0.5f,2),
builder.rotateTo(720,2),
animationSequence(
builder.color(Color.RED, Color.BLACK, 0.3f),
builder.color(Color.BLACK, Color.RED, 0.3f),
builder.color(Color.RED, Color.GREEN, 0.3f),
builder.color(Color.GREEN, Color.RED, 0.3f),
builder.color(Color.RED, Color.YELLOW, 0.3f),
builder.color(Color.YELLOW, Color.RED, 0.3f),
builder.color(Color.RED, Color.BLUE, 0.3f)
)
),

animationTogether(
builder.moveTo(newPos.x,center.x, newPos.y,center.y, 2),
builder.scaleTo(0.5f,2, 0.5f,2, 2),
builder.rotateTo(360, 2),
builder.color(Color.BLUE, Color.GRAY, 2),
builder.colorText(Color.BLUE, Color.WHITE, 2)

),


CanAnimation.run(new Runnable() {
@Override
public void run() {
Snackbar.make(toolbar, "动画播放完毕", Snackbar.LENGTH_SHORT).show();
}
})

).start();


CanValueAnimator使用代码:



CanValueAnimator.Builder builder = CanValueAnimator.Builder.on(view);


animationSequence(builder.moveTo(center.x, center.y, 0),

animationTogether(builder.moveTo(newPos.x, newPos.y, 2),
builder.rotateTo(360, 2),
builder.color(Color.BLUE, Color.RED, 2),
builder.colorText(Color.WHITE, Color.BLUE, 2)


),
animationTogether(builder.scaleTo(0.5f, 0.5f,2),
builder.rotateTo(720,2),
animationSequence(
builder.color(Color.RED, Color.BLACK, 0.3f),
builder.color(Color.BLACK, Color.RED, 0.3f),
builder.color(Color.RED, Color.GREEN, 0.3f),
builder.color(Color.GREEN, Color.RED, 0.3f),
builder.color(Color.RED, Color.YELLOW, 0.3f),
builder.color(Color.YELLOW, Color.RED, 0.3f),
builder.color(Color.RED, Color.BLUE, 0.3f)
)
),

animationTogether(
builder.moveTo(center.x, center.y, 2),
builder.scaleTo(2, 2, 2),
builder.rotateTo(360, 2),
builder.color(Color.BLUE, Color.GRAY, 2),
builder.colorText(Color.BLUE, Color.WHITE, 2)

),


CanAnimation.run(new Runnable() {
@Override
public void run() {
Snackbar.make(toolbar, "动画播放完毕", Snackbar.LENGTH_SHORT).show();
}
})


).start();


2. 翻转动画

翻转动画通过使用ViewFlipper和Camera等实现。
使用代码:



public class FlipperAnimeActivity extends AppCompatActivity {


@Bind(R.id.vf)
ViewFlipper vf;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.flipper);
ButterKnife.bind(this);


vf.postDelayed(new Runnable() {
@Override
public void run() {
CanFlipAnimation.flipForever(vf, CanFlipAnimation.FlipDirection.LEFT_RIGHT,1000,null,0);
}
},1000);
}
}


开发者





canyinghao:




新浪微博



google+




相关源码推荐:

我来说两句
所有评论(3)
雪洗中关村 2016-7-4 10:31:57
感谢分享,安卓巴士有你更精彩:)
回复
apkbus热心网友 2017-3-23 17:27:35
强烈支持楼主ing……
回复
黄宣淇 2017-3-23 17:28:31
正需要啊,感谢楼主无私分享!
回复
提取码:  下载次数:2 状态:已购或VIP 售价:10(原价:10)金钱 下载权限:初级码农 
974 0 2
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿
帖子代码编辑/版权问题
QQ:435399051,1294855032
如何获得代码达人称号?
如何成为签约作者?
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )