用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属性,可以重复执行多次。