開啟動畫效果——漸隱漸現效果
阿新 • • 發佈:2019-01-23
啟動某項程式時我們往往都能看到不同的“開機動畫”,千變萬化的動畫也只不過是四種基本動畫衍變美化而成的。
四種android動畫效果:alpha 漸變透明度動畫效果
scale 漸變尺寸伸縮動畫效果
translate 畫面轉換位置移動動畫效果
rotate 畫面轉移旋轉動畫效果
最簡單的莫過於漸變透明效果,單單這一種就可完成漸隱漸現的動畫效果(用於漸現漸隱的可以是整個歡迎頁面也可以是歡迎頁面裡的一部分):
1> 在res裡新建anim資料夾用來盛放動畫定義的動作檔案:
fromalpha即開始的透明度,toalpha即結束時的透明度,duration為時間(單位毫秒)。<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="3000" android:duration="3000"/> </set>
2>定義佈局檔案(layout):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical|center_horizontal" android:orientation="vertical" > <ImageView android:id="@+id/welcom_logo" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/welcome" /> </LinearLayout>
這裡和以往沒有任何不同,只需對要漸現漸隱的圖片進行id標示。
3>實現方法(Activity):
public class WelcomeActivity extends Activity implements AnimationListener {
private ImageView imageView = null;
private Animation alphaAnimation = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
imageView = (ImageView) findViewById(R.id.welcom_logo);
alphaAnimation = AnimationUtils.loadAnimation(this,
R.anim.welcome_alpha);
alphaAnimation.setFillEnabled(true);//啟動Fill保持
alphaAnimation.setFillAfter(true);//設定動畫的最後一幀是保留在view上的
imageView.setAnimation(alphaAnimation);
alphaAnimation.setAnimationListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_welcome, menu);
return true;
}
@Override
public void onAnimationEnd(Animation animation) {
//動畫結束時結束歡迎頁面並跳轉到主頁面
Intent intent=new Intent(this,GroupActivity.class);
startActivity(intent);
this.finish();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
public boolean onKeyDown(int KeyCode,KeyEvent event){
//在歡迎頁面遮蔽BACK鍵
if(KeyCode==KeyEvent.KEYCODE_BACK){
return false;
}
return false;
}
}
歡迎頁面顧名思義只是裝飾作用一閃而過不需要返回鍵進行操作。