<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ##7.1 View動畫 (1)android動畫分為view動畫、幀動畫和屬性動畫,屬性動畫是API 11(Android 3.0)的新特性,幀動畫一般也認為是view動畫。 (2)`AnimationSet`的屬性`android:shareInterpolator`表示集合中的動畫是否共享同一個插值器,如果集合不指定插值器,那么子動畫需要單獨指定所需的插值器或者使用默認值。 (3)自定義動畫需要繼承`Animation`抽象類,并重新它的`initialize`和`applyTransformation`方法,在initialize方法中做一些初始化工作,在applyTransformation方法中進行相應的矩陣變換,很多時候需要采用`Camera`類來簡化矩陣變換的過程。 (4)幀動畫使用比較簡單,但是容易引起OOM,所以在使用的時候應盡量避免使用過多尺寸較大的圖片。 ##7.2 view動畫的特殊使用場景 (1)布局動畫(`LayoutAnimation`)屬性分析 ~~~ <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:delay="0.5" android:animationOrder="reverse" android:animation="@anim/anim_item"/> ~~~ `android:delay`:表示子元素開始動畫的時間延遲,比如子元素入場動畫的時間周期是300ms,那么0.5表示每個子元素都需要延遲150ms才能播放入場動畫。 給ViewGroup指定LayoutAnimation的兩種方式 ~~~ //xml android:layoutAnimation="xxx" //java Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim_item); LayoutAnimationController controller = new LayoutAnimationController(animation); controller.setDelay(0.5f); controller.setOrder(LayoutAnimationController.ORDER_NORMAL); listView.setLayoutAnimation(controller); ~~~ (2)Activity切換效果 在startActivity方法后或者finish方法之后調用`overridePendingTransition(int inAnim, int outAnim)`方法設置進入或者退出的動畫效果。 還有其他方式可以給Activity添加切換動畫效果,但是往往有兼容性限制,參見[《Android群英傳》第七章Android動畫機制與使用技巧](http://hujiaweibujidao.github.io/blog/2015/11/27/Android-Heros-Reading-Notes-3/)。 ## 7.3 屬性動畫 (1)屬性動畫可以對任意對象的屬性進行動畫而不僅僅是view,動畫默認的時間間隔是`300ms`,默認幀率是`10ms/幀`。 (2)屬性動畫幾乎是無所不能,但是它是從API 11才有的,所以存在兼容性問題,可以考慮使用開源動畫庫[nineoldandroids](http://nineoldandroids.com/)。它的功能和系統原生的`android.animations.*`中的類的功能完全一致,使用方法也是完全一樣,只要我們用nineoldandroids編寫動畫,那么就能運行在所有的android系統上。 (3)屬性`android:repeatMode`表示動畫的重復模式,`repeat`表示連續重復播放,`reverse`表示逆向重復播放,也就是第一次播放完后第二次倒著播放動畫,第三次還是重頭開始播放動畫,第四次再倒著播放,以此類推。 (4)插值器和估值器:屬性動畫實現非勻速動畫的重要手段 時間插值器(`TimeInterpolator`)的作用是根據時間流逝的百分比計算出當前屬性值改變的百分比,系統內置的插值器有線性插值器(`LinearInterpolator`)、加速減速插值器(`AccelerateDecelerateInterpolator`)和減速插值器(`DecelerateInterpolator`)。 類型估值器(`TypeEvaluator`)的作用是根據當前屬性改變的百分比計算出改變后的屬性值,系統內置的估值器有`IntEvaluator`、`FloatEvaluator`和`ArgbEvaluator`。 (5)動畫監聽器 `AnimatorListener`:監聽動畫的開始、結束、取消以及重復播放; `AnimatorUpdateListener`:監聽動畫的整個過程,動畫每播放一幀的時候`onAnimationUpdate`方法就會被回調一次。 (6)對任意屬性做動畫的方法:封裝原始對象或者`ValueAnimator` (7)屬性動畫的工作原理:屬性動畫需要運行在有Looper的線程中,反射調用get/set方法 ## 7.4 使用動畫的注意事項 (1)OOM:盡量避免使用幀動畫,使用的話應盡量避免使用過多尺寸較大的圖片; (2)內存泄露:屬性動畫中的無限循環動畫需要在Activity退出的時候及時停止,否則將導致Activity無法釋放而造成內存泄露。view動畫不存在這個問題; (3)兼容性問題:某些動畫在3.0以下系統上有兼容性問題; (4)view動畫的問題:view動畫是對view的影像做動畫,并不是真正的改變view的狀態,因此有時候動畫完成之后view無法隱藏,即`setVisibility(View.GONE)`失效了,此時需要調用`view.clearAnimation()`清除view動畫才行。 (5)不要使用px; (6)動畫元素的交互:在android3.0以前的系統上,view動畫和屬性動畫,新位置均無法觸發點擊事件,同時,老位置仍然可以觸發單擊事件。從3.0開始,屬性動畫的單擊事件觸發位置為移動后的位置,view動畫仍然在原位置; (7)硬件加速:使用動畫的過程中,建議開啟硬件加速,這樣會提高動畫的流暢性。 其他學習資料 1.[Android樣式的開發:View Animation篇](http://keeganlee.me/post/android/20151003) 2.[Android樣式的開發:Property Animation篇](http://keeganlee.me/post/android/20151026)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看