天天看點

Android 開場動畫

呼,忙了兩天了這個,找了各種資料,勉勉強強實作我的功能,這個還得改進一下,線程方面的知識沒有學到多少,弄了線程畫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:參數就是上述的對象名

 個人使用中遇到的問題:

如果控件的visibility屬性為gone的話,動畫效果無法顯示出來,要将visibility屬性改為invisible,這樣就行了

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

提問之前,請先看提問須知

點選右側圖示發起提問

Android 開場動畫

或者加入QQ群一起學習

Android 開場動畫

TornadoFx學習交流群:1071184701

Android 開場動畫

繼續閱讀