編輯:關於Android編程
來完成這個Android動畫系列,之前寫了View Animation和Drawable Animation,接下來講解三種動畫中的最後一種,Property Animation,這也是Android動畫中最強大的一部分,同時也是相對最復雜的一部分。
Property Animation翻譯為屬性動畫,從Android3.0開始引入,相比與View Animation,官方更推薦開發者使用Property Animation。以下先講解View Animation和Property Animation的區別:
1,View Animation只能對界面上可見的組件進行修改,而Property Animation除此之外還能修改一些不是界面上可見的組件,比如修改一個float類型的值。(剛開始我看到這點也覺得奇怪,不過確實它就是如此,後面會講解怎麼應用它到界面動畫中)
2,View Animation通過動畫效果改變一個組件時,其實只是在屏幕上另一個地方繪制,而組件的響應位置還是沒改變,比如一個在屏幕左側的按鈕,通過View Animation移動到右側,雖然在屏幕上看到按鈕到了右側了,但是你還是需要點擊左側原來的位置,按鈕才會響應。
3,Proerty Animation能修改很多View Animation不能修改的View控件的屬性,比如背景顏色。
接下來主要講解Property Animation的用法,包含了ValueAnimator,ObjectAnimator和AnimatorSet.
ValueAnimator animation = ValueAnimator.ofFloat(0f, 1f); animation.setDuration(1000); animation.start(); animation.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { System.out.println(onAnimationUpdate = + animation.getAnimatedValue()); //可以在這裡更新UI } });
ObjectAnimator anim = ObjectAnimator.ofFloat(foo, alpha, 0f, 1f); anim.setDuration(1000); anim.start()
ObjectAnimator colorAnim = ObjectAnimator.ofInt(tv, textColor,0xff008271, Color.RED); colorAnim.setDuration(4000); colorAnim.setEvaluator(new ArgbEvaluator()); colorAnim.setRepeatCount(100); colorAnim.start();
AnimatorSet bouncer = new AnimatorSet(); bouncer.play(bounceAnim).before(squashAnim1); bouncer.play(squashAnim1).with(squashAnim2); bouncer.play(squashAnim1).with(stretchAnim1); bouncer.play(squashAnim1).with(stretchAnim2); bouncer.play(bounceBackAnim).after(stretchAnim2); ValueAnimator fadeAnim = ObjectAnimator.ofFloat(newBall, alpha, 1f, 0f); fadeAnim.setDuration(250); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.play(bouncer).before(fadeAnim); animatorSet.start();
Android Intent傳遞對象的兩種方法(Serializable,Parcelable)詳細介紹今天要給大家講一下Android中Intent中如何傳遞對象,就我
數據格式為 {sid:737, tts:http://news.iciba.com/admin/tts/2013-12-11.mp3, co
最近,由於正在做的一個應用中要用到側滑菜單,所以通過查資料看視頻,學習了一下自定義View,實現一個類似於QQ的側滑菜單,順便還將其封裝為自定義組件,可以實現類似QQ的側
(效果如上圖所示)其實很簡單:比方說上面的容器是一個ListView復制代碼 代碼如下: <ListView android:id=@+id/listView_de