android animation——动画的基本属性
2016-05-12 20:07
639 查看
如果想在app中加入炫酷的动画,那么这些基本属性是必须掌握的。
本来我使用word文档记录的,传递过来只能以这种方式显示了。
本来我使用word文档记录的,传递过来只能以这种方式显示了。
1, view动画 a) 四种变换: i. 平移,<translate>,TranslateAnimation ii. 缩放,<scale>,ScaleAnimation iii. 旋转,<rotate>,RotateAnimation iv. 透明度,<alpha>,AlphaAnimation b) Xml文件创建 i. res/anim c) 标签含义 i. <set>动画集合: 1. interpolator 为插值器,插值器的选择影响动画的移动过程 2. shareInterpolator 表示集合中的动画是否公用一个插值器,true/false 3. duration 动画的持续时间 4. fillAfter 动画结束后view是否停留在结束为止,true/false ii. <translate>平移: 1. fromXDelta:x的起始值,0 2. toXDelta:x的结束值,100 3. fromYDelta:y的起始值 4. toYDelta:y的结束值 iii. <scale>缩放: 1. fromXScale:水平缩放起始值:0 2. toXScale:水平缩放结束值:1 3. fromYScale:竖直方向起始值 4. toYScale: 竖直方向结束值 5. pivotX:缩放轴点X 6. pivotY:缩放轴点Y iv. <rotate>旋转: 1. fromDegrees旋转开始的角度: 2. toDegrees:旋转结束的角度 3. pivotX:旋转的轴点x 4. pivotY:旋转的轴点y v. <alpha>透明度: 1. fromAlpha:透明度的起始值,0 2. toAlpha:透明度的结束值,1 d) 引用xml文件: i. Animation animation=AnimationUtils.loadAnimaton(context,R.anim.anim_demo); View.startAnimation(animationss); 2, 帧动画 a) Xml文件创建:drawable/anim_demo b) Xml文件写法: i. 根标签:<animation-list> 1. Oneshot 是否只播放一次,true/false ii. Item :<item>: 1. Duration 一帧的播放时间,毫秒 iii. 引用xml文件: 1. View.setBackgroundResource(R.drawable.anim_demo); 2. AnimationDrawable animationDrawable=(AnimationDrawable)view.getBackground(); 3, LayoutAnimation(父布局的动画效果,指向子view进行): a) 定义xml文件: i. <LayoutAnimation delay=”0.5” adimationOrder=”normal” animation=”@anim/anim_demo”/> 1. Delay:开始动画延迟,子动画会依次延迟出场,0到1 2. adimationOrder:子动画顺序 a) normal 顺序显示 b) reverse 逆向显示 c) random 随机出场 3. animation 为子元素指定具体的入场动画 b) 使用方法: i. 给GroupView指定layoutAnimation属性 1. layoutAnimation=”@anim/anim_layout” c) 代码实现方法: i. Animation animation=AnimationUtils.loadAnimation(context,R.anim.anim_item); ii. LayoutAnimationController controller=new LayoutAniationController(animation); iii. Controller.setDelay(0.5f); iv. Controller.setorder(LayoutAnimationController.ORDER_NORMAL); v. listView.setLayoutAnimation(controller); 4, Activity的切换效果: a) overridePendingTransition(int enterAnim,int exitAnim); i. 这个方法必须在finish();或者startActivity(intent);之后调用 ii. EnterAnim: activity被打开时调用的动画资源 iii. exitAnim:activity被暂停时调用的动画资源 b) 使用方法: i. Intent intent=new Intent(this,activity.class); ii. startActivity(intent); iii. overridePendingTransition(R.anim.anim_demo1,R.anim.anim_demo2); c) activity退出时也可调用该方法 d) Fragment也可以添加切换动画 i. FragmentTransaction中的setCustomAnimations()方法 5, 属性动画(最灵活的动画实现方式): a) ObjectAnimator: i. 代码实现:ObjectAnimator objectAnimator= ObjectAnimator.ofFloat(view,"translationY",-view.getHeight()); objectAnimator.setDuration(1000);//动画执行时间 objectAnimator.setRepeatCount(ValueAnimator.INFINITE);//设置重复计数。设置成无限循环 objectAnimator.setRepeatMode(ValueAnimator.REVERSE);//设置重复的模式,反转效果 objectAnimator.start(); ii. 标签含义: 1. propertyName=“translationY”:属性动画的作用对象名称 2. duration=”1000”:动画的时常 3. valueFrom=”200”:属性的起始值 4. valueTo=“300”:属性的结束值 5. startOffset=”500”:动画的延迟时间 6. repeatCount=”1”:动画的重复次数,infinite表示无限循环,0默认,-1也表示无限循环 7. repeatMode=”动画的重复模式”,reverse反转效果,restart从头开始 8. valueType=”intType”:表示propertyName所指向的属性类型,intType和FloatType两种 b) ValueAnimator: i. 代码实现:ValueAnimator valueAnimator1=ObjectAnimator.ofInt(view,"backgroundColor",/*红色*/0xffff8080,/*蓝色*/0xff8080ff); valueAnimator1.setDuration(1000);//动画执行时间 valueAnimator1.setEvaluator(new ArgbEvaluator());//设置估值器 valueAnimator1.setRepeatCount(ValueAnimator.INFINITE);//设置重复计数。设置成无限循环 valueAnimator1.setRepeatMode(ValueAnimator.REVERSE);//设置重复的模式,反转效果 valueAnimator1.start(); ii. 标签含义 1. ValueAnimator的标签属性只比ObjectAnimator少了propertyName标签 c) AnimatorSet(属性动画集合): i. AnimatorSet animatorSet=new AnimatorSet(); animatorSet.playTogether( ObjectAnimator.ofFloat(show_anim,"rotationX",0,360), ObjectAnimator.ofFloat(show_anim,"rotationY",0,180), ObjectAnimator.ofFloat(show_anim,"rotation",0,-90), ObjectAnimator.ofFloat(show_anim,"translationY",0,90), ObjectAnimator.ofFloat(show_anim,"translationX",0,90), ObjectAnimator.ofFloat(show_anim,"scaleX",1,1.5f), ObjectAnimator.ofFloat(show_anim,"scaleY",1,1.5f), ObjectAnimator.ofFloat(show_anim,"alpha",1,0.25f,1) ); animatorSet.setDuration(time); animatorSet.start(); ii. 标签含义: 1. Ordering:子动画的播放模式:together表示同时播放,sequentially表示按顺序播放 6, 插值器的种类: a) LinearInterpolator linearInterpolator;//线性插值器,根据时间百分比设置属性百分比 b) TimeInterpolator timeInterpolator;//时间插值器,匀速动画 c) AccelerateInterpolator accelerateInterpolator;//加速度插值器,两头慢中间快,默认的播放效果 d) DecelerateInterpolator decelerateInterpolator;//减速插值器,越来越慢
相关文章推荐
- 关于Android事件派发流程的理解
- 解决Android软键盘和表情面板切换界面闪动问题
- Android开发常用的adb命令整理
- Android手机之间Socket通信
- Android中如何将清除数据变为管理空间进行自定义数据清除
- 在Android Studio中使用git的总结
- 使用Toast(android中的一种提醒方式) & 建立监听 --4
- android获取屏幕的宽高
- AndroidStudio--Terminal的使用
- Android控件HorizontalScrollView/listview去掉滚动条
- Android匹配Uri工具类UriMatcher
- Android Json解析工具类
- Android学习笔记五:文件夹创建
- android 编译技巧
- Android之初探RecyclerView
- Android 内存管理工具
- Android之Content provider
- Android 获得手机信息工具类
- Android-Activity的启动模式
- Android 超好正则表达式工具类RegexUtil