问:插值器用过没(插值器的种类有哪些|怎么自定义插值器)?
答:
插值器决定值的变化模式,默认的种类有九个。
默认种类有:
AccelerateDecelerateInterpolator :在动画开始与结束的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始速率变化加快
LinearInterpolator:以常量速率改变
AnticipateInterpolator:开始的时候向后然后向前甩
CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线
PathInterpolator:动画执行的效果按贝塞尔曲线
anticipateOvershootInterpolator:开始的时候向后然后向前甩一定值后返回最后的值
OvershootInterpolator:向前甩一定值后再回到原来位置
BounceInterpolator:动画结束的时候有弹起效果
自定义插值器:
写一个类实现Interpolator接口,Interpolator是一个空的接口继承了TimeInterpolator接口,定义getInterpolation方法即可
问:属性动画出现的版本和原因(或者关于属性动画的其他问题)?
答:
出现的版本:Android 3.0(API 11)后才提供的一种全新动画模式,出现原因为作用对象局限于View,没有改变View的属性,只是改变视觉效果,动画效果单一。
二类三方:
二类:ValueAnimator、ObjectAnimator是其重要的两个类。
三方:ValueAnimator有ofInt、ofFloat、ofObject三个重要的方法
三个方法的作用:
1.创建动画实例
2.将传入的多个参数进行平滑过渡:此处传入0和1,表示将值从0平滑过渡到1 ,如果传入了3个Int参数 a,b,c ,则是先从a平滑过渡到b,再从b平滑过渡到c,以此类推,他们内置了估值器
插值器和估值器:
插值器(Interpolator):决定值的变化模式
估值器(TypeEvaluator):决定值的具体变化数值
问:动画能组合在一起使用么?
答:可以将动画组合在一起使用AnimatorSet,
AnimatorSet.play() 播放当前动画的同时可以
.with() :将现有动画和传入的动画同时执行
.after() :将现有动画插入到传入的动画之后执行
.before() : 将现有动画插入到传入的动画之前执行
问:ObjectAnimator需要操作的view的属性(Property)有
答:
1、Alpha 控制View的透明度
2、float TranslationX 控制X方向的位移
3、float TranslationY 控制Y方向的位移
4、float ScaleX 控制X方向的缩放倍数
5、float ScaleY 控制Y方向的缩放倍数
6、float Rotation 控制以屏幕方向为轴的旋转度数
7、float RotationX 控制以X轴为轴的旋转度数
8、float RotationY 控制以Y轴为轴的旋转度数
问:补间动画都有哪些(Tween动画有哪些|怎么旋转、平移、缩放、透明度)?
答:
补间动画由Animation类来实现具体效果,
包括平移(TranslateAnimation)、
缩放(ScaleAnimation)、
旋转(RotateAnimation)、
透明度(AlphaAnimation)
四个子类,四种变化。
问:项目实现过哪些动画、怎么实现的?
答:
帧动画、补间动画、属性动画都用过
例如下拉刷新时头布局里我们使用了帧动画
页面里有个弹出窗口使用了补间动画,还加入了BounceInterpolator插值器的效果
[ 进度条 ] 使用了属性动画