Android中动画主要有下面几种,帧动画(frame),补间动画(tween),属性动画(property)
我们平时项目中主要用的是帧动画和补间动画
帧动画需要我们准备一组静态图片,这些图片是通过分解动画得来的,静态图片连起来播放形成动画效果
我们在res目录下新建一个drawable目录,用来存放动画资源和xml文件
图片如下:
girl.xml 注意android:oneshot="false|true" 该属性控制动画是否重复播放,false代表重复播放
<?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/girl_1"
android:duration="200"/>
<item
android:drawable="@drawable/girl_2"
android:duration="200"/>
<item
android:drawable="@drawable/girl_3"
android:duration="200"/>
<item
android:drawable="@drawable/girl_4"
android:duration="200"/>
<item
android:drawable="@drawable/girl_5"
android:duration="200"/>
<item
android:drawable="@drawable/girl_6"
android:duration="400"/>
<item
android:drawable="@drawable/girl_7"
android:duration="400"/>
<item
android:drawable="@drawable/girl_8"
android:duration="200"/>
<item
android:drawable="@drawable/girl_9"
android:duration="200"/>
<item
android:drawable="@drawable/girl_10"
android:duration="200"/>
<item
android:drawable="@drawable/girl_11"
android:duration="200"/>
</animation-list>
MainActivity.java
package com.example.frameanim;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv;
private AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
iv.setBackgroundResource(R.drawable.girl); // 将xml动画资源设置为ImageView的背景
mAnimationDrawable = (AnimationDrawable) iv.getBackground(); // 获取设置的动画
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!mAnimationDrawable.isRunning()) {
mAnimationDrawable.start();
} else if (mAnimationDrawable.isRunning()) {
mAnimationDrawable.stop();
}
}
});
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。