Android 动画详解:Frame Animation 帧动画

Android 平台提供了两类动画

一类是Tween动画,进行图像变化来产生动画效果(旋转、平移、缩放、渐变)。


Android 动画详解:RotateAnimation 旋转动画

Android 动画详解:ScaleAnimation 缩放动画

Android 动画详解:AlphaAnimation 透明度动画

Android 动画详解:TranslateAnimation 位移动画


二类是 Frame动画,也就是逐帧动画

这节看Frame Animation 的实现,

Xml:

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="true" > 
    <item 
        android:drawable="@drawable/p1" 
        android:duration="200"/> 
    <item 
        android:drawable="@drawable/p2" 
        android:duration="200"/> 
    <item 
        android:drawable="@drawable/p3" 
        android:duration="200"/> 
</animation-list> 

布局文件:

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/AbsoluteLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <Button
        android:id="@+id/main_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始动画" />
    <Button
        android:id="@+id/main_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_y="42dp" 
        android:text="取消动画" />
    <ImageView
        android:id="@+id/main_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="100dp"
        android:src="@drawable/p1" />
</AbsoluteLayout>

代码:

public class MainActivity extends Activity {
	ImageView imageView;
	Button start;
	Button cancel;
	AnimationDrawable draw;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		imageView = (ImageView) findViewById(R.id.main_img);
		imageView.setBackgroundResource(R.anim.animation_list);
		draw = (AnimationDrawable) imageView.getBackground();
		
		start = (Button) findViewById(R.id.main_start);
		cancel=(Button) findViewById(R.id.main_cancel);
		start.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				draw.start();
			}
		});
		cancel.setOnClickListener(new OnClickListener(){
			public void onClick(View v) {
				draw.stop();
			}
		});
	}
}


最后效果图:

动画


您的回应...

相关话题

查看全部

也许你感兴趣

换一批

热门标签

更多