用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屬性,可以重復執行多次。
