1. 程式人生 > >Android-動畫-面試題

Android-動畫-面試題

問:插值器用過沒(插值器的種類有哪些|怎麼自定義插值器)?

答:

插值器決定值的變化模式,預設的種類有九個。

預設種類有:

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插值器的效果

[  進度條   ]  使用了屬性動畫