在res文件目录下,新建一个anim的文件夹,用于存放动画效果的xml文件
2、我把所有的动画效果放到set.xml文件中了,在这里可以实现所有动画的效果,每个效果下面都有注释,解释是什么意思
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:shareInterpolator="false" > <set android:interpolator="@android:anim/decelerate_interpolator" > <scale android:duration="2000" android:fromXScale="0.2" android:fromYScale="0.2" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.5" android:toYScale="1.5" /> <!-- fromXScale:表示沿着x轴缩放的起始比例 toXScale:表示沿着x轴缩放的结束比例 fromYScale:表示沿着y轴缩放的起始比例 toYScale:表示沿着y轴缩放的结束比例 图片中心点: android:pivotX="50%" android:pivotY="50%" --> <rotate android:duration="2000" android:fromDegrees="0" android:repeatCount="1" android:repeatMode="reverse" android:toDegrees="360" /> <!-- fromDegrees:表示旋转的起始角度 toDegrees:表示旋转的结束角度 repeatCount:旋转的次数 默认值是0 如果是4的话就旋转5次 如果repeatCount=-1或是infinite则表示循环旋转 repeatMode:默认值为restart 模式要想其作用 repeatCount值必须大于0 或者是-1 reverse表示反转 --> <alpha android:duration="2000" android:fromAlpha="1.0" android:toAlpha="0.1" /> <!-- fromAlpha:起始透明度 toAlpha:结束透明度 1.0表示完全不透明 0.0表示完全透明 --> <translate android:duration="2000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="320" android:toYDelta="0" /> <!-- android:interpolator 动画的渲染器 1、accelerate_interpolator(动画加速器) 使动画在开始的时候 最慢,然后逐渐加速 2、decelerate_interpolator(动画减速器)使动画在开始的时候 最快,然后逐渐减速 3、accelerate_decelerate_interpolator(动画加速减速器) 中间位置分层: 使动画在开始的时候 最慢,然后逐渐加速 使动画在开始的时候 最快,然后逐渐减速 结束的位置最慢 fromXDelta 动画起始位置的横坐标 toXDelta 动画起结束位置的横坐标 fromYDelta 动画起始位置的纵坐标 toYDelta 动画结束位置的纵坐标 duration 动画的持续时间 --> </set> </set>
3、MainActivity中的代码:
package com.example.lession19_tween; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity { public ImageView imageView; public Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button) findViewById(R.id.button1); imageView=(ImageView) findViewById(R.id.imageView1); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void animImpl(View v){ Animation animation=AnimationUtils.loadAnimation(this,R.anim.set); imageView.startAnimation(animation); } /*public void animImpl(){ Animation animation=AnimationUtils.loadAnimation(this,R.anim.alpha_demo); imageView.startAnimation(animation); } public void animImpl2(){ Animation animation=AnimationUtils.loadAnimation(this,R.anim.rotate_demo); imageView.startAnimation(animation); }*/ }