[1] Android 的动画
- View 动画:通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,属于一种渐进式动画,支持自定义。
- 帧动画**:通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画。
- 属性动画**:通过动态的改变对象的属性从而达到动画效果,API 11的新特性。
[2] 帧动画的demo
创建逐帧动画的最简单的方法是将XML文件中的动画定义在res / drawable / folder中,并将其设置为View对象的背景。然后,调用start()运行动画。
XML中定义的AnimationDrawable由单个 <animation-list>元素和一系列嵌套 <item>标记组成。每个项目定义一个动画框架。
[3] 准备一组图片,animation-list
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@drawable/im_lo_8"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_7"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_6"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_5"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_4"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_3"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_2"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_1"
android:duration="150">
</item>
<item
android:drawable="@drawable/im_lo_0"
android:duration="150">
</item>
</animation-list>
[4] 在 XML中,添加 ImageView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_animation"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
tools:context="com.example.sweetgirl.customizeview.animation.AnimationActivity">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="187dp"
android:id="@+id/iv_animation"
android:src="@drawable/im_lo_8"
android:contentDescription="" />
</RelativeLayout>
[5] 在 Activity 中
import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import com.example.sweetgirl.customizeview.R;
public class AnimationActivity extends AppCompatActivity {
private ImageView imgPic;
private AnimationDrawable animationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_animation);
imgPic = (ImageView) findViewById(R.id.iv_animation);
imgPic.setImageResource(R.drawable.animation_lo_list);
//给动画资源赋值
animationDrawable = (AnimationDrawable) imgPic.getDrawable();
animationDrawable.start();//开始
}
}