Android學習—補間動畫(縮放動畫)


用XML文件來設置動畫的屬性

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <set xmlns:android="http://schemas.android.com/apk/res/android">
 3     <!--
 4         fromXScale:動畫在X坐標的初始大小(橫向的初始大小)
 5         fromYScale:動畫在Y坐標的初始大小(垂直方法的初始大小)
 6         toXScale:動畫在X坐標的最終大小(橫向的最終大小)
 7         toYScale:動畫在Y坐標的最終大小(垂直的最終大小)
 8         pivotX:動畫在X坐標顯示的位置(動畫在屏幕上橫向顯示的位置)
 9         pivotY:動畫在Y坐標顯示的位置(動畫在屏幕上垂直顯示的位置)
10        -->
11     <scale
12         android:fromXScale="0"
13         android:fromYScale="0"
14         android:toXScale="2.0"
15         android:toYScale="2.0"
16         android:pivotX="50%"
17         android:pivotY="50%"
18         android:duration="2000"
19         android:repeatCount="3"
20         />
21 </set>
 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     tools:context="com.test2_23.test2_23.ScaleActivity">
 5     <ImageView
 6         android:id="@+id/scale_xml_img"
 7         android:src="@drawable/img_bird"
 8         android:layout_width="wrap_content"
 9         android:layout_height="wrap_content"
10         />
11 </RelativeLayout>
 1 public class ScaleActivity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_scale);
 7         ImageView iv = (ImageView) findViewById(R.id.scale_xml_img);
 8         //使用AnimationUtils類的loadAnimation來加載xml格式的動畫文件
 9         Animation animation = AnimationUtils.loadAnimation(this,R.anim.animation_scale);
10         iv.clearAnimation();
11         iv.startAnimation(animation);
12 
13     }
14 }

用Java代碼來設置動畫的屬性

 1 public class Scale_javaActivity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_scale_java);
 7 
 8         ImageView img = (ImageView) findViewById(R.id.scale_java_img);
 9         //有一個ScaleAnimation類來創建一個縮放動畫
10         //構造函數參數分別是:fromXScale,toXScale,fromYScale,toYScale
11         //Animation animation = new ScaleAnimation(0.0f,2.0f,0.0f,2.0f);
12         //構造函數的重載可以把pivotX和pivotY一塊設置進去,
13         //但是要還需要添加這個縮放是以自己為參考來縮放還是以父類
14         //添加Animation.RELATIVE_TO_SELF相對自己
15         //添加Animation.RELATIVE_TO_PARENT相對自己
16         Animation animation = new ScaleAnimation(
17                 0.0f,2.0f,0.0f,2.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
18         animation.setDuration(2000);
19         img.clearAnimation();
20         img.startAnimation(animation);
21     }
22 }

 

縮放動畫可以演示一個視圖在寬高上的縮放效果。

主要屬性:

FromXScale: X坐標的初始狀態的值,視圖橫向的初始狀態值0.0是不顯示;

FromYScale:Y坐標的初始狀態值,視圖豎向的初始狀態值.

toXScale:X坐標的最終狀態值,視圖橫向縮放后的大小,是按倍數計算;

toYScale:Y坐標的最終狀態值,視圖豎向縮放后的大小。

PivotX:視圖縮放在手機上X軸的開始位置50%是指水平方向居中的位置開始播放動畫。

PivotY:視圖縮放在手機上Y軸的開始位置50%是指垂直方向居中的位置開始播放動畫。

Duration:動畫的持續時間。

 

如果給一張圖片添加縮放動畫,他的初始狀態fromXScale是橫向的初始大小,0.0是不顯示,同樣fromYScale是垂直方向的初始大小。

toXScale設置的是當動畫結束時圖片橫向要縮放到原來圖片的倍數大小,可以是1倍,也可以是多倍。比如設置2.0那么圖片在動畫執行完畢后他的寬是原有圖片的兩倍大小,toYScale是垂直方法的縮放,PivotX是動畫在手機上x坐標上的位置,會在手機橫向的哪個位置開始顯示,pivotY是手機在垂直方向的顯示位置,他也有repeatCount屬性,可以重復執行多次。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM