Android 開場動畫
阿新 • • 發佈:2017-08-19
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:
- first是一個ImageView
- 這個方法放在線程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 開場動畫