編輯:關於Android編程
動畫相關的屬性<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+Cjx0YWJsZSBib3JkZXI9"1" width="1200" cellspacing="1" cellpadding="1">
1.@android:anim/accelerate_decelerate_interpolator:先加速後減速
2.@android:anim/accelerate_interpolator :加速
3.@android:anim/decelerate_interpolator:減速
4.@android:anim/anticipate_interpolator:先往動畫移動的反方向移動一點然後在沿著設定的動畫移動 移動軌跡如下圖。
5.anticipate_overshoot_interpolator:先往動畫的反方向移動一點,然後沿著設定的方向移動到終點之後繼續移動一點然後在回彈到最終設定的位置。如下圖:
6.@android:anim/bounce_interpolator:動畫移動到最後會有幾次回彈的效果,最終停止在設定的位置。
7.@android:anim/cycle_interpolator:動畫周期移動。
8.@android:anim/linear_interpolator:動畫勻速移動。
9.@android:anim/overshoot_interpolator:動畫到最後的位置會向反方向移動一點。
一..XML 實現 alpha :
那麼上面的動畫就停留在最後一幀畫面上。
二.代碼實現alpha
Animation anim = new AlphaAnimation(0f, 1.0f); anim.setDuration(2000); anim.setRepeatCount(Animation.INFINITE); anim.setRepeatMode(Animation.RESTART);
三.XML實現scale
> android:pivotY="50.0%" android:repeatCount="3" android:repeatMode="reverse" android:toXScale="1.0" android:toYScale="1.0" />
Animation anim1 = new ScaleAnimation(0.5f, 1.0f, 0.5f, 1.0f, 0.5f, 0.5f); anim1.setDuration(2000); anim1.setRepeatCount(3); anim1.setRepeatMode(Animation.REVERSE); anim1.setInterpolator(this, interpolator.accelerate_decelerate); anim1.setFillAfter(true);
五.XML實現stranslate
Animation animTranlate = new TranslateAnimation(0, 0, 0, 400); animTranlate.setDuration(2000); animTranlate.setFillAfter(true); animTranlate.setInterpolator(this, interpolator.bounce); text.startAnimation(animTranlate);
八.代碼實現rotate />
Animation animRotate = new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); animRotate.setDuration(2000); animRotate.setInterpolator(this, interpolator.bounce); animRotate.setFillAfter(true); animRotate.setStartOffset(2000);//動畫執行前停留時間 text.startAnimation(animRotate);
Animation anim1 = new ScaleAnimation(0.5f, 1.0f, 0.5f, 1.0f, 0.5f, 0.5f); anim1.setDuration(2000); anim1.setRepeatCount(3); anim1.setRepeatMode(Animation.REVERSE); anim1.setInterpolator(this, interpolator.accelerate_decelerate); anim1.setFillAfter(true); // text.setAnimation(anim1); Animation animTranlate = new TranslateAnimation(0, 0, 0, 400); animTranlate.setDuration(2000); animTranlate.setFillAfter(true); animTranlate.setInterpolator(this, interpolator.bounce); // text.startAnimation(animTranlate); Animation animRotate = new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); animRotate.setDuration(2000); animRotate.setInterpolator(this, interpolator.bounce); animRotate.setFillAfter(true); // text.startAnimation(animRotate); AnimationSet animationSet = new AnimationSet(true); animationSet.addAnimation(animRotate); animationSet.addAnimation(animTranlate); animationSet.addAnimation(anim1); text.startAnimation(animationSet);
前言 一個好的應用需要一個有良好的用戶體驗的登錄界面,現如今,許多應用的的登錄界面都有著用戶名,密碼一鍵刪除,用戶名,密碼
前言:那些年我們用過的顯示性能指標 相對其他 Android 性能指標(如內存、CPU、功耗等)而言,顯示性能(包括但不僅限於我們常說的“流暢度”)的概念本來就相對復雜
在程序開發中,為了讓程序表現的更快更流暢,我們會使用多線程來提升應用的並發性能。但多線程並發代碼是一個棘手的問題,線程的生命周期處理不好就會造成內存洩漏。 new
接上一篇《Android開發性能優化總結(一)》 一、安卓UI性能檢測與優化UI是安卓應用程序與用戶打交道的最直接途徑,UI設計的好不好,直接影響到用戶的體驗,