1. 程式人生 > >Android XML檔案中定義動畫的一些屬性

Android XML檔案中定義動畫的一些屬性

1.在res目錄下新建anim資料夾

2.寫一個xxx.xml

3.在xml中加入一些控制動畫的屬性。

       <alpha/>----------透明度變化

      <scale/>-----------尺寸伸縮變化

      <translate/>---------位移變化

      <rotate/>-------------旋轉變化

<alpha>
   <?xml version="1.0" encoding="utf-8"?>

           <alpha

             android:fromAlpha="0.1"

            android:toAlpha="1.0"

            android:duration="3000"/>

<!-- 透明度控制動畫效果 alpha

‍   浮點型值:

   fromAlpha 屬性為動畫起始時透明度

   toAlpha   屬性為動畫結束時透明度

      說明:

                  0.0表示完全透明

                 1.0表示完全不透明

                以上值取0.0-1.0之間的float資料型別的數字

                 長整型值

    duration  屬性為動畫持續時間

        說明:

                時間以毫秒為單位

</set>


<scale>
<?xml version="1.0" encoding="utf-8"?>

        <scale

            android:interpolator=   "@android:anim/accelerate_decelerate_interpolator"

            android:fromXScale="0.0"

            android:toXScale="1.4"

            android:fromYScale="0.0"

            android:toYScale="1.4"

            android:pivotX="50%"

            android:pivotY="50%"

            android:fillAfter="false"

            android:duration="700" />

 </set>

<!-- 尺寸伸縮動畫效果 scale

  屬性:interpolator 指定一個動畫的插入器

  在我試驗過程中,使用android.res.anim中的資源時候發現

有三種動畫插入器:

               accelerate_decelerate_interpolator  加速-減速 動畫插入器

               accelerate_interpolator        加速-動畫插入器

               decelerate_interpolator        減速- 動畫插入器

               其他的屬於特定的動畫效果

 浮點型值:

              fromXScale 屬性為動畫起始時 X座標上的伸縮尺寸

              toXScale   屬性為動畫結束時 X座標上的伸縮尺寸

              fromYScale 屬性為動畫起始時Y座標上的伸縮尺寸

              toYScale   屬性為動畫結束時Y座標上的伸縮尺寸

  說明:

以上四種屬性值

              0.0表示收縮到沒有

              1.0表示正常無伸縮

               值小於1.0表示收縮

               值大於1.0表示放大

           pivotX     屬性為動畫相對於物件的X座標的開始位置

           pivotY     屬性為動畫相對於物件的Y座標的開始位置

 說明:

              以上兩個屬性值 從0%-100%中取值

              50%為物件的X或Y方向座標上的中點位置

 長整型值:

              duration  屬性為動畫持續時間

               說明:   時間以毫秒為單位

布林型值:

              fillAfter 屬性 當設定為true ,該動畫轉化在動畫結束後被應用

<translate>
<?xml version="1.0" encoding="utf-8"?>

     <translate

             android:fromXDelta="30"

             android:toXDelta="-80"

             android:fromYDelta="30"

              android:toYDelta="300"

             android:duration="2000"

          />

  <!-- translate 位置轉移動畫效果

  整型值:

              fromXDelta 屬性為動畫起始時 X座標上的位置

              toXDelta   屬性為動畫結束時 X座標上的位置

              fromYDelta 屬性為動畫起始時 Y座標上的位置

              toYDelta   屬性為動畫結束時 Y座標上的位置

   注意:

               沒有指定fromXType toXType fromYType toYType 時候,

                預設是以自己為相對參照物

長整型值:

              duration  屬性為動畫持續時間

              說明:   時間以毫秒為單位

</set>

<rotate>
<?xml version="1.0" encoding="utf-8"?>

    <rotate  android:interpolator="@android:anim/accelerate_decelerate_interpolator"

                android:fromDegrees="0"

                android:toDegrees="+350"

                 android:pivotX="50%"

                 android:pivotY="50%"

                 android:duration="3000" />

<!-- rotate 旋轉動畫效果

     屬性:interpolator 指定一個動畫的插入器

    在我試驗過程中,使用android.res.anim中的資源時候發現

     有三種動畫插入器:

                accelerate_decelerate_interpolator   加速-減速 動畫插入器

                accelerate_interpolator               加速-動畫插入器

                 decelerate_interpolator               減速- 動畫插入器

      其他的屬於特定的動畫效果

       浮點數型值:

               fromDegrees 屬性為動畫起始時物件的角度

               toDegrees   屬性為動畫結束時物件旋轉的角度 可以大於360度

        說明:

                 當角度為負數——表示逆時針旋轉

                 當角度為正數——表示順時針旋轉

                             (負數from——to正數:順時針旋轉)

                             (負數from——to負數:逆時針旋轉)

                             (正數from——to正數:順時針旋轉)

                             (正數from——to負數:逆時針旋轉)

                           pivotX     屬性為動畫相對於物件的X座標的開始位置

                            pivotY     屬性為動畫相對於物件的Y座標的開始位置

說明:        以上兩個屬性值 從0%-100%中取值

                50%為物件的X或Y方向座標上的中點位置 長整型值:

               duration  屬性為動畫持續時間

  說明:       時間以毫秒為單位

</set>

Java 檔案呼叫

        Button button=(Button)findViewById(R.id.ok)
        button.setOnClickListener(new OnClickListener(){

          public void onClick(View v) {
              Animation animation=AnimationUtils.loadAnimation(HelloActivity.this,R.anim.buttonain);
             findViewById(R.id.listView).startAnimation(animation);
            }
        });

</set>