首页 > 代码库 > 第二十八讲:Android之Animation(三)

第二十八讲:Android之Animation(三)

我们不得不饮食、睡眠、游玩、恋爱,也就是说,我们不得不接触生活中最甜蜜的事情,不过我们必须不屈服于这些事物。—— 居里夫人


本讲内容:补间动画 Tween Animation


前面我们只学习了实现单个动画效果,本讲将同时实现多个动画效果:

我们通过一个例子感受一下,代码的讲解都写在注释里了

下面是res/layout/activity_main.xml 布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.text.MainActivity$PlaceholderFragment" >
    
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:layout_gravity="center"
        android:src=http://www.mamicode.com/"@drawable/c4" />>
下面是新建的res/anim/alpha_rotate.xml文件

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/accelerate_interpolator"
	android:shareInterpolator="true">
	<alpha 
		android:fromAlpha="1.0"
		android:toAlpha="0.0"
		android:startOffset="500"
		android:duration="2000" />
	<rotate android:fromDegrees="0"
		android:toDegrees="360"
		android:pivotX="50%"
		android:pivotY="50%"
		android:duration="2000" />
</set>
android:shareInterpolator="true"  表示里面的一系列动画都应用 <span style="font-family: Arial;">interpolator</span>


下面是MainActivity.java主界面文件:

public class MainActivity extends Activity {
	private Button b;
	private ImageView image;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		b = (Button) findViewById(R.id.b);
		image = (ImageView) findViewById(R.id.image);

		AnimationButtonListener listener=new AnimationButtonListener();
		b.setOnClickListener(listener);
	}

	private class AnimationButtonListener implements OnClickListener {
		@Override
		public void onClick(View v) {
			Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha_rotate);
			image.startAnimation(animation);
		}
	}
}

下面是运行结果:可以看出一边旋转一边渐变透明度



本讲到这里,谢谢大家!

第二十八讲:Android之Animation(三)