Android中的动画 Animation
一,Frame Animation 帧动画
每一张静止的图片 依次展示出来 利用人眼的错觉 形成动画
XML 步骤:
* 1,在res/drawable获取xml的Frame 动画<animation-list> </>
* 2,在xml中 添加item drawable:每一帧动画的图片 duration:每一帧显示的时间
* 3,在layout布局中 给ImagView 设置成背景图片
* 4,在逻辑代码获取动画 管理动画
Java 步骤:
1,获取AnimationDrawable对象
2,AnimationDrawable添加动画视图
3,动画设置给图片控件
二,Tween Animation 补间动画 设置开始 和结束的动画 中间部分 由系统补齐
主要有:alpha(透明度),scale(缩放),rotate(旋转),translate(位移)
XML步骤:
1,在res创建一个文件夹anim
2,在anim文件夹 添加动画
3, iv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim_alpha));
JAVA步骤:
1,创建动画对象
2,给动画对象设置属性
3,开启动画
Animation rotate = new RotateAnimation(0,720,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
Animation alpha = new AlphaAnimation(1.0f,0.0f);
// true 使用的是set默认的插值器
// false 使用自身动画的插值器
AnimationSet animationSet = new AnimationSet(false);
//添加动画到集合
animationSet.addAnimation(rotate);
animationSet.addAnimation(alpha);
//设置动画时间
animationSet.setDuration(3000);
//启动动画
iv.startAnimation(animationSet);
三,Property Animation 属性动画 3.0以后才有的 是补间动画的加强般
属性动画指明任何动画
1,XML步骤:
1,在res创建animtor文件夹
2,在animtor文件夹添加动画xml
3, 使用动画填充器 将xml布局的动画添加进来
Animator animator = AnimatorInflater.loadAnimator(MainActivity.this,R.animator.background_object);
animator.setTarget(iv);//设置操作对象
animator.start();
2,Java步骤:
1,创建动画对象
2,设置时间
3,开启动画
//获取属性动画的集合对象
AnimatorSet animatorSet = new AnimatorSet();
ObjectAnimator translateY = ObjectAnimator.ofFloat(iv,"translationY",0,200,100,300);
translateY.setDuration(3000);
ObjectAnimator rotateY = ObjectAnimator.ofFloat(iv,"rotation",0,-720,720);
rotateY.setDuration(3000);
//第一种方式 执行 note:同一个动画只能执行一次 play(),with(),before(),after()
// animatorSet.play(translateY).with(rotateY);
// animatorSet.start();
//第二种方式
List<Animator> list = new ArrayList<>();
list.add(translateY);
list.add(rotateY);
// animatorSet.playTogether(list);//同步执行
animatorSet.playSequentially(list);//依次执行
animatorSet.start();