<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android復習(二)應用資源 --> 動畫

      沒什么好總結的 復制自 https://developer.android.google.cn/guide/topics/resources/animation-resource 有需要的可以查看官方文檔

       

      動畫資源

      一個動畫資源可以定義以下兩種動畫類型之一:

      屬性動畫
      通過使用 Animator 在設定的時間段內修改對象的屬性值來創建動畫。
      視圖動畫

      使用視圖動畫框架可以創建兩種類型的動畫:

      屬性動畫

      在 XML 中定義的動畫,用于在設定的一段時間內修改目標對象的屬性,例如背景顏色或 Alpha 值。

      文件位置:
      res/animator/filename.xml
      該文件名將用作資源 ID。
      編譯后的資源數據類型:
      指向 ValueAnimatorObjectAnimator 或 AnimatorSet 的資源指針。
      資源引用:
      在 Java 或 Kotlin 代碼中:R.animator.filename
      在 XML 中:@[package:]animator/filename
      語法:
       
         <set
            android:ordering=["together" | "sequentially"]>
      
              <objectAnimator
                  android:propertyName="string"
                  android:duration="int"
                  android:valueFrom="float | int | color"
                  android:valueTo="float | int | color"
                  android:startOffset="int"
                  android:repeatCount="int"
                  android:repeatMode=["repeat" | "reverse"]
                  android:valueType=["intType" | "floatType"]/>
      
              <animator
                  android:duration="int"
                  android:valueFrom="float | int | color"
                  android:valueTo="float | int | color"
                  android:startOffset="int"
                  android:repeatCount="int"
                  android:repeatMode=["repeat" | "reverse"]
                  android:valueType=["intType" | "floatType"]/>
      
              <set>
                  ...
              </set>
          </set>
      

        


         
       

      該文件必須具有一個根元素,可以是 <set><objectAnimator> 或 <valueAnimator>。您可以將動畫元素(包括其他 <set> 元素)組合到 <set> 元素中。

      元素:
      <set>
      容納其他動畫元素(<objectAnimator><valueAnimator> 或其他 <set> 元素)的容器。代表 AnimatorSet

      您可以指定嵌套的 <set> 標記來將動畫進一步組合在一起。每個 <set> 都可以定義自己的 ordering 屬性。

      屬性:

      android:ordering
      關鍵字。指定此集合中動畫的播放順序。
      說明
      sequentially 依序播放此集合中的動畫
      together(默認) 同時播放此集合中的動畫。
      <objectAnimator>
      在特定的一段時間內為對象的特定屬性創建動畫。代表 ObjectAnimator

       

      屬性:

      android:propertyName
      字符串。必需。要添加動畫的對象屬性,通過其名稱引用。例如,您可以為 View 對象指定 "alpha" 或 "backgroundColor"。 但是,objectAnimator 元素不包含 target 屬性,因此您無法在 XML 聲明中設置要添加動畫的對象。您必須通過調用 loadAnimator() 來擴充您的動畫 XML 資源,然后調用 setTarget() 來設置包含此屬性的目標對象。
      android:valueTo
      浮點數、整數或顏色。必需。動畫屬性的結束值。顏色以六位十六進制數字表示(例如,#333333)。
      android:valueFrom
      浮點數、整數或顏色。動畫屬性的開始值。如果未指定,則動畫將從屬性的 get 方法獲得的值開始。顏色以六位十六進制數字表示(例如,#333333)。
      android:duration
      整數。動畫的時間,以毫秒為單位。默認為 300 毫秒。
      android:startOffset
      整數。調用 start() 后動畫延遲的毫秒數。
      android:repeatCount
      整數。動畫的重復次數。設為 "-1" 表示無限次重復,也可設為正整數。例如,值 "1" 表示動畫在初次播放后重復播放一次,因此動畫總共播放兩次。默認值為 "0",表示不重復。
      android:repeatMode
      整數。動畫播放到結尾處的行為。android:repeatCount 必須設置為正整數或 "-1",該屬性才有效。設置為 "reverse" 可讓動畫在每次迭代時反向播放,設置為 "repeat" 則可讓動畫每次從頭開始循環播放。
      android:valueType
      關鍵字。如果值為顏色,則不要指定此屬性。動畫框架會自動處理顏色值
      說明
      intType 指定動畫值為整數
      floatType(默認) 指定動畫值為浮點數
      <animator>在指定的時間段內執行動畫。代表 ValueAnimator

      屬性:

      android:valueTo浮點數、整數或顏色。必需。動畫的結束值。顏色以六位十六進制數字表示(例如,#333333)。android:valueFrom浮點數、整數或顏色。必需。動畫的開始值。顏色以六位十六進制數字表示(例如,#333333)。android:duration整數。動畫的時間,以毫秒為單位。默認為 300ms。android:startOffset整數。調用 start() 后動畫延遲的毫秒數。。android:repeatCount整數。動畫的重復次數。設為 "-1" 表示無限次重復,也可設為正整數。例如,值 "1" 表示動畫在初次播放后重復播放一次,因此動畫總共播放兩次。默認值為 "0",表示不重復。android:repeatMode整數。動畫播放到結尾處的行為。android:repeatCount 必須設置為正整數或 "-1",該屬性才有效。設置為 "reverse" 可讓動畫在每次迭代時反向播放,設置為 "repeat" 則可讓動畫每次從頭開始循環播放。android:valueType關鍵字。如果值為顏色,則不要指定此屬性。動畫框架會自動處理顏色值。
      說明
      intType 指定動畫值為整數
      floatType(默認) 指定動畫值為浮點數
      示例:保存在 res/animator/property_animator.xml 的 XML 文件:

       

      <set android:ordering="sequentially">
              <set>
                  <objectAnimator
                      android:propertyName="x"
                      android:duration="500"
                      android:valueTo="400"
                      android:valueType="intType"/>
                  <objectAnimator
                      android:propertyName="y"
                      android:duration="500"
                      android:valueTo="300"
                      android:valueType="intType"/>
              </set>
              <objectAnimator
                  android:propertyName="alpha"
                  android:duration="500"
                  android:valueTo="1f"/>
          </set>
      

        

          
         
       

      為了運行此動畫,您必須將代碼中的 XML 資源擴充為 AnimatorSet 對象,然后在開始運行動畫集之前為所有動畫設置目標對象。為方便起見,調用 setTarget() 即可設置一個用于 AnimatorSet 的所有子項的目標對象。以下代碼展示了如何執行此操作:

      java代碼:
      
      AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
              R.animator.property_animator);
          set.setTarget(myObject);
          set.start();
      
      kotlin代碼:
      
          val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
              .apply {
                  setTarget(myObject)
                  start()
              }
          
      

        

      另請參閱:

      視圖動畫

      視圖動畫框架可支持補間動畫和逐幀動畫,兩者都可以在 XML 中聲明。以下幾個部分介紹如何使用這兩種方法。

      補間動畫

      在 XML 中定義的動畫,用于對圖形執行旋轉、淡出、移動和拉伸等轉換。

      文件位置:
      res/anim/filename.xml
      該文件名將用作資源 ID。
      編譯后的資源數據類型:
      指向 Animation 的資源指針。
      資源引用:
      在 Java 中:R.anim.filename
      在 XML 中:@[package:]anim/filename
      語法:
       
        <?xml version="1.0" encoding="utf-8"?>
          <set xmlns:android="http://schemas.android.com/apk/res/android"
              android:interpolator="@[package:]anim/interpolator_resource"
              android:shareInterpolator=["true" | "false"] >
              <alpha
                  android:fromAlpha="float"
                  android:toAlpha="float" />
              <scale
                  android:fromXScale="float"
                  android:toXScale="float"
                  android:fromYScale="float"
                  android:toYScale="float"
                  android:pivotX="float"
                  android:pivotY="float" />
              <translate
                  android:fromXDelta="float"
                  android:toXDelta="float"
                  android:fromYDelta="float"
                  android:toYDelta="float" />
              <rotate
                  android:fromDegrees="float"
                  android:toDegrees="float"
                  android:pivotX="float"
                  android:pivotY="float" />
              <set>
                  ...
              </set>
          </set>
      

        


         
       

      該文件必須具有一個根元素,可以是 <alpha><scale><translate><rotate> 或包含一組(或多組)其他動畫元素(甚至是嵌套的 <set> 元素)的 <set> 元素。

      元素:
      <set>
      容納其他動畫元素(<alpha><scale><translate><rotate>)或其他 <set> 元素的容器。代表 AnimationSet

      屬性:

      android:interpolator
      插值器資源。 要應用于動畫的 Interpolator。 該值必須是對指定插值器的資源的引用(而不是插值器類名稱)。您可以使用平臺提供的默認插值器資源,也可以創建自己的插值器資源。有關插值器的詳細信息,請參閱以下說明。
      android:shareInterpolator
      布爾值。如果要在所有子元素中共用同一插值器,則為“true”。
      <alpha>
      淡入或淡出動畫。代表 AlphaAnimation

      屬性:

      android:fromAlpha
      浮點數。起始不透明度偏移,0.0 表示透明,1.0 表示不透明。
      android:toAlpha
      浮點數。結束不透明度偏移,0.0 表示透明,1.0 表示不透明。

      要了解 <alpha> 支持的更多屬性,請參閱 Animation 類引用(其中所有 XML 屬性均由此元素繼承)。

      <scale>
      大小調整動畫。您可以通過指定 pivotX 和 pivotY,來指定圖片向外(或向內)擴展的中心點。例如,如果這兩個值為 0、0(左上角),則所有擴展均向右下方向進行。代表 ScaleAnimation

      屬性:

      android:fromXScale
      浮點數。起始 X 尺寸偏移,其中 1.0 表示不變。
      android:toXScale
      浮點數。結束 X 尺寸偏移,其中 1.0 表示不變。
      android:fromYScale
      浮點數。起始 Y 尺寸偏移,其中 1.0 表示不變。
      android:toYScale
      浮點數。結束 Y 尺寸偏移,其中 1.0 表示不變。
      android:pivotX
      浮點數。在對象縮放時要保持不變的 X 坐標。
      android:pivotY
      浮點數。在對象縮放時要保持不變的 Y 坐標。

      要了解 <scale> 支持的更多屬性,請參閱 Animation 類引用(其中所有 XML 屬性均由此元素繼承)。

      <translate>
      垂直和/或水平移動。支持采用以下三種格式之一的以下屬性:從 -100 到 100 的以“%”結尾的值,表示相對于自身的百分比;從 -100 到 100 的以“%p”結尾的值,表示相對于其父項的百分比;不帶后綴的浮點值,表示絕對值。代表 TranslateAnimation

      屬性:

      android:fromXDelta
      浮動數或百分比。起始 X 偏移。表示方式:相對于正常位置的像素數(例如 "5"),相對于元素寬度的百分比(例如 "5%"),或相對于父項寬度的百分比(例如 "5%p")。
      android:toXDelta
      浮動數或百分比。結束 X 偏移。表示方式:相對于正常位置的像素數(例如 "5"),相對于元素寬度的百分比(例如 "5%"),或相對于父項寬度的百分比(例如 "5%p")。
      android:fromYDelta
      浮動數或百分比。起始 Y 偏移。表示方式:相對于正常位置的像素數(例如 "5"),相對于元素高度的百分比(例如 "5%"),或相對于父項高度的百分比(例如 "5%p")。
      android:toYDelta
      浮動數或百分比。結束 Y 偏移。表示方式:相對于正常位置的像素數(例如 "5"),相對于元素高度的百分比(例如 "5%"),或相對于父項高度的百分比(例如 "5%p")。

      要了解 <translate> 支持的更多屬性,請參閱 Animation 類引用(其中所有 XML 屬性均由此元素繼承)。

      <rotate>
      旋轉動畫。代表 RotateAnimation

      屬性:

      android:fromDegrees
      浮點數。起始角度位置,以度為單位。
      android:toDegrees
      浮點數。結束角度位置,以度為單位。
      android:pivotX
      浮動數或百分比。旋轉中心的 X 坐標。表示方式:相對于對象左邊緣的像素數(例如 "5"),相對于對象左邊緣的百分比(例如 "5%"),或相對于父級容器左邊緣的百分比(例如 "5%p")。
      android:pivotY
      浮點數或百分比。旋轉中心的 Y 坐標。表示方式:相對于對象上邊緣的像素數(例如 "5"),相對于對象上邊緣的百分比(例如 "5%"),或相對于父級容器上邊緣的百分比(例如 "5%p")。

      要了解 <rotate> 支持的更多屬性,請參閱 Animation 類引用(其中所有 XML 屬性均由此元素繼承)。

      示例:
      保存在 res/anim/hyperspace_jump.xml 的 XML 文件:

       

       <set xmlns:android="http://schemas.android.com/apk/res/android"
              android:shareInterpolator="false">
              <scale
                  android:interpolator="@android:anim/accelerate_decelerate_interpolator"
                  android:fromXScale="1.0"
                  android:toXScale="1.4"
                  android:fromYScale="1.0"
                  android:toYScale="0.6"
                  android:pivotX="50%"
                  android:pivotY="50%"
                  android:fillAfter="false"
                  android:duration="700" />
              <set
                  android:interpolator="@android:anim/accelerate_interpolator"
                  android:startOffset="700">
                  <scale
                      android:fromXScale="1.4"
                      android:toXScale="0.0"
                      android:fromYScale="0.6"
                      android:toYScale="0.0"
                      android:pivotX="50%"
                      android:pivotY="50%"
                      android:duration="400" />
                  <rotate
                      android:fromDegrees="0"
                      android:toDegrees="-45"
                      android:toYScale="0.0"
                      android:pivotX="50%"
                      android:pivotY="50%"
                      android:duration="400" />
              </set>
          </set>
          
      

        

         

       

      以下應用代碼會將動畫應用到 ImageView 并啟動動畫:

      java 代碼:
      
      ImageView image = (ImageView) findViewById(R.id.image);
          Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
          image.startAnimation(hyperspaceJump);
      
      
      kotlin 代碼:
      
      val image: ImageView = findViewById(R.id.image)
          val hyperspaceJump: Animation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump)
          image.startAnimation(hyperspaceJump)
      

        

       
      另請參閱:

      插值器

      插值器是在 XML 中定義的動畫修改器,它會影響動畫的變化率。插值器可對現有的動畫效果執行加速、減速、重復、退回等。

      插值器通過 android:interpolator 屬性應用于動畫元素,該屬性的值是對插值器資源的引用。

      Android 中提供的所有插值器都是 Interpolator 類的子類。為便于您使用 android:interpolator 屬性將插值器應用于動畫,Android 針對每個插值器類包含了一個可供您引用的公共資源。下表指定了每個插值器要使用的資源:

      插值器類資源 ID
      AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator
      AccelerateInterpolator @android:anim/accelerate_interpolator
      AnticipateInterpolator @android:anim/anticipate_interpolator
      AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator
      BounceInterpolator @android:anim/bounce_interpolator
      CycleInterpolator @android:anim/cycle_interpolator
      DecelerateInterpolator @android:anim/decelerate_interpolator
      LinearInterpolator @android:anim/linear_interpolator
      OvershootInterpolator @android:anim/overshoot_interpolator

      您可以通過以下方式使用 android:interpolator 屬性應用上述某個插值器:

         
       <set android:interpolator="@android:anim/accelerate_interpolator">
              ...
          </set>
      

        


         
       

      自定義插值器

      如果您對平臺提供的插值器(在上表中列出)不滿意,則可以使用修改過的屬性創建自定義插值器資源。例如,您可以調整 AnticipateInterpolator 的加速率或調整 CycleInterpolator 的循環次數。為此,您需要在 XML 文件中創建自己的插值器資源。

      文件位置:
      res/anim/filename.xml
      該文件名將用作資源 ID。
      編譯后的資源數據類型:
      指向相應插值器對象的資源指針。
      資源引用:
      在 XML 中:@[package:]anim/filename
      語法:
         
      <?xml version="1.0" encoding="utf-8"?>
          <InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
              android:attribute_name="value"
              />
          
      

        

       

      如果您不應用任何屬性,則您的插值器的運作方式將與平臺提供的插值器(在上表中列出)完全相同。

      元素:
      請注意,在 XML 中定義的每個 Interpolator 實現的名稱都以小寫字母開頭。

       

      <accelerateDecelerateInterpolator>
      變化率在開始和結束時緩慢,但在中間會加快。

      沒有屬性。

      <accelerateInterpolator>
      變化率在開始時較為緩慢,然后會加快。

      屬性:

      android:factor
      浮點數。加速率(默認為 1)。
      <anticipateInterpolator>
      先反向變化,然后再急速正向變化。

      屬性:

      android:tension
      浮點數。要應用的張力(默認為 2)。
      <anticipateOvershootInterpolator>
      先反向變化,再急速正向變化并超過目標值,然后以最終值結束。

      屬性:

      android:tension
      浮點數。要應用的張力(默認為 2)。
      android:extraTension
      浮點數。張力要乘以的倍數(默認值為 1.5)。
      <bounceInterpolator>
      變化會在結束時退回。

      沒有屬性。

      <cycleInterpolator>
      按指定的循環次數重復動畫。變化率符合正弦曲線圖。

      屬性:

      android:cycles
      整數。循環次數(默認值為 1)。
      <decelerateInterpolator>
      變化率開始時很快,然后減慢。

      屬性:

      android:factor
      浮點數。減速率(默認值為 1)。
      <linearInterpolator>
      變化率恒定不變。

      沒有屬性。

      <overshootInterpolator>
      先急速正向變化,再超過最終值,然后回到最終值。

      屬性:

      android:tension
      浮點數。要應用的張力(默認為 2)。
      示例:

      保存在 res/anim/my_overshoot_interpolator.xml 的 XML 文件:

         
      <?xml version="1.0" encoding="utf-8"?>
          <overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
              android:tension="7.0"
              />
          
      

        

       

      此動畫 XML 將應用插值器:

         
      <scale xmlns:android="http://schemas.android.com/apk/res/android"
              android:interpolator="@anim/my_overshoot_interpolator"
              android:fromXScale="1.0"
              android:toXScale="3.0"
              android:fromYScale="1.0"
              android:toYScale="3.0"
              android:pivotX="50%"
              android:pivotY="50%"
              android:duration="700" />
          
      

        

       

      幀動畫

      在 XML 中定義的按順序顯示一系列圖片的動畫(如電影)。

      文件位置:
      res/drawable/filename.xml
      該文件名將用作資源 ID。
      編譯后的資源數據類型:
      指向 AnimationDrawable 的資源指針。
      資源引用:
      在 Java 中:R.drawable.filename
      在 XML 中:@[package:]drawable.filename
      語法:
         
      <?xml version="1.0" encoding="utf-8"?>
          <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
              android:oneshot=["true" | "false"] >
              <item
                  android:drawable="@[package:]drawable/drawable_resource_name"
                  android:duration="integer" />
          </animation-list>
      

        


         
       
      元素:
      <animation-list>
      必需。此元素必須是根元素。包含一個或多個 <item> 元素。

      屬性:

      android:oneshot
      布爾值。如果您想要執行一次動畫,則為“true”;如果要循環播放動畫,則為“false”。
      <item>
      單幀動畫。必須是 <animation-list> 元素的子元素。

      屬性:

      android:drawable
      可繪制資源。要用于此幀的可繪制對象。
      android:duration
      整數。顯示此幀的持續時間,以毫秒為單位。
      示例:
      保存在 res/drawable/rocket.xml 的 XML 文件:
          <?xml version="1.0" encoding="utf-8"?>
          <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
              android:oneshot="false">
              <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
              <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
              <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
          </animation-list>
      

        

         
      以下應用代碼會將該動畫設置為 View 的背景,然后播放動畫:
      java 代碼:
      
      ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
          rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
      
          rocketAnimation = rocketImage.getBackground();
          if (rocketAnimation instanceof Animatable) {
              ((Animatable)rocketAnimation).start();
          }
      
      
      kotlin 代碼:
      
      val rocketImage: ImageView = findViewById(R.id.rocket_image)
          rocketImage.setBackgroundResource(R.drawable.rocket_thrust)
      
          val rocketAnimation = rocketImage.background
          if (rocketAnimation is Animatable) {
              rocketAnimation.start()
          }
      

        

       

      posted @ 2020-04-02 14:11  王世楨  閱讀(229)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 婷婷丁香五月六月综合激情啪| 精品 无码 国产观看| 国产免费又黄又爽又色毛| 国产亚洲av手机在线观看| 亚洲综合国产精品第一页| 一本无码人妻在中文字幕免费| 久久久久久亚洲精品成人| 欧美熟妇乱子伦XX视频| 99久久国产宗和精品1上映| 日韩国产欧美精品在线| 国模一区二区三区私拍视频 | 国产人妻久久精品一区二区三区| 吉川爱美一区二区三区视频| 成人国产精品一区二区网站公司 | 建昌县| 精品女同一区二区三区在线| 重口SM一区二区三区视频| 亚洲嫩模喷白浆在线观看| 久久精品av国产一区二区| 狠狠人妻久久久久久综合九色| 中文字幕国产精品一二区| 野花香视频在线观看免费高清版| 四虎永久地址www成人| 97夜夜澡人人爽人人模人人喊| 雷州市| 国产精品久久人妻无码网站一区| 国产日韩入口一区二区| 国产欧美日韩免费看AⅤ视频| 亚洲熟女综合色一区二区三区| 熟女精品国产一区二区三区| 成人亚欧欧美激情在线观看| 成人自拍小视频在线观看| 翁牛特旗| 亚洲avav天堂av在线网爱情| 少妇人妻综合久久中文字幕| 亚洲AV无码国产永久播放蜜芽| 欧美xxxxhd高清| 亚洲欧美日韩综合一区二区| av色国产色拍| 久久无码中文字幕免费影院蜜桃| 久草国产视频|