1. 程式人生 > >Android 開場動畫

Android 開場動畫

ade 其他 qpm art ios8 nwr ebr 效果 ihs

呼,忙了兩天了這個,找了各種資料,勉勉強強實現我的功能,這個還得改進一下,線程方面的知識沒有學到多少,弄了線程畫UI有著各種bug,無奈。。就這樣跳過先了,哪一天有時間在回來搞一下。

正文————

  

要實現開頭動畫,有兩種方法,一種是用xml文件定義,第二種則是用java實現。

xml動畫中,有著四種基本的動畫,如下圖片說明

技術分享

可以使用這四種組合出更加高級的xml動畫

具體請點擊這個:XML做動畫UI

使用xml動畫的方法過程:

第一步,首先要在res新建一個anim的文件夾,之後,在裏面寫xml動畫文件,如圖

技術分享

第二步,加載資源文件

示範代碼如下,改一下後面的R.anin.xxx

Animation animation=AnimationUtils.loadAnimation(this, R.anim.fade_in);

第三步,為某個控件指定動畫

first.startAnimation(animation);

PS:

  1. first是一個ImageView
  2. 這個方法放在線程run()方法裏會報錯,我對線程不太懂,所以還找不到解決辦法

除此之外,一般我們都是要給animation添加監聽器,定義動畫開始前的行為,動畫循壞的行為,和動畫結束的行為

				AnimationListener animationlistener = new AnimationListener() {//設置動畫監聽事件
					
					@Override
					public void onAnimationStart(Animation arg0) {//動畫開始前
						// TODO Auto-generated method stub
						
					}
					
					@Override
					public void onAnimationRepeat(Animation arg0) {//動畫循壞時
						// TODO Auto-generated method stub
						
					}
					
					@Override
					public void onAnimationEnd(Animation arg0) {//動畫結束後
						Intent intent = new Intent();
						intent.setClass(StartActivity.this, MainActivity.class);
						StartActivity.this.startActivity(intent);
							
						
					}
				}; 	

開頭動畫一般結束之後都是跳轉到app主界面的activity,用Intent意圖跳轉activity

不要忘了在AndroidMainfest裏面聲明一個activity

animation.setAnimationListener(animationlistener);

之後設置監聽器方法,這個不要忘

使用java方法實現動畫效果:


第一步,new一個動畫對象

AlphaAnimation alphaanimation = new AlphaAnimation(0.0f, 1.0f);
				//透明度從0.0(完全透明)到1.0(完全不透明)

上述代碼就是實現淡入效果的,舉一反三,其他的這裏便不多說

第二步,為對象設置相關屬性,

     alphaanimation.setDuration(3000);//設置動畫持續時間為3s
	alphaanimation.setFillAfter(true);//設置動畫結束後保留當前狀態

當然不止這兩種屬性,不過常用的就這兩種了,其他的話,百度吧

第三步,為控件指定動畫

first.startAnimation(alphaanimation);

PS:參數就是上述的對象名

最後,附上參考:自定義控件三部曲

Android 開場動畫