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