一言不合就上图 【Android 属性动画的简单使用】
文章图片
属性动画跟补间动画差不多,因为:效果一样
不一样的是:
补间动画:只有效果;
属性动画:是实质性的改变了图片的位置,大小,透明度,旋转度。
在MainActivity里面直接上代码:
//找控件.获取资源idImageView imageView = (ImageView) findViewById(R.id.first_iv);
//沿y轴放大
ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(imageView, "scaleY", 2f, 1f);
//沿x轴放大
ObjectAnimator scaleXAnimator = ObjectAnimator.ofFloat(imageView, "scaleX", 2f, 1f);
//移动
ObjectAnimator translationYAnimator = ObjectAnimator.ofFloat(imageView, "translationY", 0f, 400f);
//透明动画
ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "alpha", 0f, 1f);
//透明动画
ObjectAnimator rotation = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 360f);
//多属性一块来,集合
AnimatorSet set = new AnimatorSet();
//同时沿X,Y轴放大,且改变透明度,然后移动
set.play(scaleYAnimator).with(scaleXAnimator).with(animator).with(rotation).with(translationYAnimator);
//都设置3s,也可以为每个单独设置
set.setDuration(3000);
set.start();
这就完事了 下面是设置监听(也可以理解为,动画的生命周期)
根据你自己的需求,爱要不要反正我要:
//设置监听的生命周期
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
Log.e("+++++++++","这是动画开始的方法");
}@Override
public void onAnimationEnd(Animator animator) {
Toast.makeText(MainActivity.this,"调用了动画结束的方法",Toast.LENGTH_LONG).show();
}@Override
public void onAnimationCancel(Animator animator) {
Log.e("+++++++++","这是动画取消的方法");
}@Override
public void onAnimationRepeat(Animator animator) {
Log.e("+++++++++","这是动画重播的方法");
}
});
强调几点:
1我的Android studio是2.3.3版本,SDK下-v7:26.+’
compile 'com.android.support:appcompat-v7:26.+'