Android的SDK提供了三種類型的動畫,分別是補間動畫、逐幀動畫和插值屬性動畫。下面先介紹第一種動畫效果-補間動畫。
補間動畫可以應用於View,讓開發人員可以定義一些關於大小、位置、旋轉和透明度的改變效果,達到讓View的內容動起來的效果。
補間動畫是使用Animation類建立的,它有4個直接子類,分別實現不同的動畫效果,分別為:
AlphaAnimation 漸層透明度動畫效果,即淡入淡出效果
ScaleAnimation 漸層尺寸伸縮動畫效果,即縮放效果
TranslateAnimation 畫面轉換位置移動動畫效果,移動效果
RotateAnimation 畫面轉移旋轉動畫效果,即旋轉效果
要使用補間動畫的效果,有兩種方法,第一種是在XML檔案中設定動畫效果;第二種是在Java代碼中設定。下面分別介紹這兩種方法:
1.在XML檔案中設定方式:
在Android項目的res目錄下建立anim檔案夾,然後在anim檔案夾下建立firstanim.xml,添加動畫效果的配置代碼,範例程式碼如下:
[html]
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="3000"
/>
android:interpolator=
"@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.4"
android:fromYScale="0.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
android:fromXDelta="30"
android:toXDelta="-80"
android:fromYDelta="30"
android:toYDelta="300"
android:duration="2000"
/>
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000" />
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="3000"
/>
android:interpolator=
"@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.4"
android:fromYScale="0.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
android:fromXDelta="30"
android:toXDelta="-80"
android:fromYDelta="30"
android:toYDelta="300"
android:duration="2000"
/>
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000" />
在Activity中的onCreate()方法中,擷取在XML中配置的動畫效果,代碼如下:
[java]
Animation animation= AnimationUtils.loadAnimation(this,R.anim.firstanim);
Animation animation= AnimationUtils.loadAnimation(this,R.anim.firstanim);
如果這個動畫效果使用在一個ImageView上,可以參考如下代碼:
[java]
imageView.startAnimation(animation);
imageView.startAnimation(animation);2.在Java代碼中設定方式:
以AlphaAnimation為例,
[java]
//首先聲明Animation的一個對象
private Animation alpha;
//在Activity的onCreate()方法中執行個體化這個對象
alpha=new AlphaAnimation(0.1f, 1.0f);
//設定動畫期間為3秒
alpha.setDuration(3000);
//首先聲明Animation的一個對象
private Animation alpha;
//在Activity的onCreate()方法中執行個體化這個對象
alpha=new AlphaAnimation(0.1f, 1.0f);
//設定動畫期間為3秒
alpha.setDuration(3000);
如果這個動畫效果使用在一個ImageView上,可以參考如下代碼:
[java]
imageView.startAnimation(alpha);
imageView.startAnimation(alpha);