动画初学习

Android动画
传统动画:1.0+
补间动画 java/xml

效果:
平移
TranslateAnimation tran = new TranslateAnimation(0,200,0,200);
tran.setDuration(2000);
tran.setFillAfter(true);
imageView.startAnimation(tran);
旋转
<!--
第一个参数:开始的角度
第二个参数:结束的角度
相对于参考系Animation.RELATIVE_TO_SELF,0.5F 相对于自身
-->
RotateAnimation rotate = new RotateAnimation(45,180,Animation.RELATIVE_TO_SELF,0.5F,Animation.RELATIVE_TO_SELF,0.5F);
rotate.setDuration(2000);
rotate.setFillAfter(true);
imageView.startAnimation(rotate);
透明度
//动画 Animation
alphaAnimation.setDuration(2000);//时间
alphaAnimation.setFillAfter();//是否停留在原先的位置,如果设置为false透明度 设置从1-0 ,则最后还显示,true 不显示
//重复的模式
alphaAnimation.setRepeatMode();//Animation.REVERSE反转的模式,由完全透明到完全不透明 1-0,0-1;//Animation.RESTART:重来一遍1-0-1-0
//重复的次数
alphaAnimation.setRepeatCount(3);


imageView.startAnimation(alphaAnimation;

缩放
ScaleAnimation scale = new ScalAnimation(0.5F,3F,3F,0.5);
scale.setDuration(2000);
imageView.startAnimation(scale);
set

AnimationSet
//差值器
//设置差值器 animationSet.setInterpolator(new new BounceInterpolator());
JavaAnimActivity
XML:
1.创建一个文件夹 anim
2.创建文件<!-- <set> --> <!-- <alpha> -->
在根标签设置其他属性
3.获取XML文件中定义的Animation
AnimationUtils.loadAnimation(this,R.anim.xml_anim);

帧动画
1.添加图片资源
2.drawable下创建帧动画.xml 创建一个animation-list
3.xml<item 时间 资源>
4.Java 获取图片的背景
5.drawable.start();开启逐帧动画



动画的监听:
setAnimationLinstener();
<!-- 平移切换界面 -->
overridePendingTransition();
属性动画:3.0+


控件来实现动画

坐标系的概念:
x往右+
y往下+



属性动画:
ObjectAnimator 链表的实现
1.真实的改变一个控件
2.实现更高级的动画 set get 可以真实的操控一个控件的属性
3.异步的方式:不管哪个先写都同时执行,开启了一个新的线程
ObjectAnimator.ofFloat(imageView,"translationX",0,200).setDuration(2000).start();
rotation:旋转
translationX/Y 根据X/Y平移
alpha:透明度
scaleX/Y:根据X/Y缩放
//更好的方式
PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("translationX",0,200);
ObjectAnimator.ofPropertyValuesHolder(imageView,p1,p2....);

AnimatorSet set
set.play(x).after(y); x在y之后执行
set.play(1).with(2); 1 2 一起
set.play(1).before(2) 1 在2 之前执行;
set.playTogether
set.setInterpolator(new CycleInterpolator(15));差值器
set.setStartDelay();//延迟效果
应用:开机动画 菜单

传统动画:
onDraw();方法--->不停地绘制-->死循环
并不是真实的改变控件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值