动画之逐帧
2016-02-08 20:38
330 查看
步骤:
第一步:在安卓xml资源文件中定义一组用于生成动画的图片资源,包含一系列的《item》,《animation—list》等标记实现。(oneshot属性设置是否循环播放,false代表循环播放,duration属性设置播放的时间)
第二步:在布局文件中定义布局的背景为我们所设置的图片资源(第一步所做的图片资源)。也可以作为mageView
的背景使用。
第三步:先创建一个布局管理器,找到布局;在创建一个animationdrawable对象,设置布局文件背景;最后在播放动画。
第四步:播放跟暂停动画的实现:首先布局设点击事件;然后定义一个标签flag为true用if判断,如果flag为true则调用animationdrawable.start()播放动画,反之则animationdrawable.stop()暂停动画。
具体操作:
1、在drawable添加6张图片,即需要循环播放的图片
lm1.png:
lm2.png:
lm3.png:
lm4.png:
lm5.png:
lm6.png:
2、在drawable添加zhuzhen.xml
<?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/lm1" android:duration="200"/>
<item android:drawable="@drawable/lm2" android:duration="200"/>
<item android:drawable="@drawable/lm3" android:duration="200"/>
<item android:drawable="@drawable/lm4" android:duration="200"/>
<item android:drawable="@drawable/lm5" android:duration="200"/>
<item android:drawable="@drawable/lm6" android:duration="200"/>
</animation-list>
3、布局文件activity_main
<RelativeLayout 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:background="@drawable/zhuzhen"
android:id="@+id/relativeLayout"
tools:context=".MainActivity" >
</RelativeLayout>
4、MainActivity.java
package com.example.zhuzhen;
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.RelativeLayout;
public class MainActivity extends Activity {
Boolean flag = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);// 初始化布局,定义一个布局管理器
final AnimationDrawable animationDrawable = (AnimationDrawable) relativeLayout.getBackground();// 创建animationdrawable对象,加载我们的设定动画
animationDrawable.start();// 启动动画
relativeLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
flag = !flag;
if (flag) {
animationDrawable.start();// 启动动画
} else {
animationDrawable.stop();// 停止动画
}
}
});
}
}
步骤:
第一步:在安卓xml资源文件中定义一组用于生成动画的图片资源,包含一系列的《item》,《animation—list》等标记实现。(oneshot属性设置是否循环播放,false代表循环播放,duration属性设置播放的时间)
第二步:在布局文件中定义布局的背景为我们所设置的图片资源(第一步所做的图片资源)。也可以作为mageView
的背景使用。
第三步:先创建一个布局管理器,找到布局;在创建一个animationdrawable对象,设置布局文件背景;最后在播放动画。
第四步:播放跟暂停动画的实现:首先布局设点击事件;然后定义一个标签flag为true用if判断,如果flag为true则调用animationdrawable.start()播放动画,反之则animationdrawable.stop()暂停动画。
具体操作:
1、在drawable添加6张图片,即需要循环播放的图片
lm1.png:
lm2.png:
lm3.png:
lm4.png:
lm5.png:
lm6.png:
2、在drawable添加zhuzhen.xml
<?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/lm1" android:duration="200"/>
<item android:drawable="@drawable/lm2" android:duration="200"/>
<item android:drawable="@drawable/lm3" android:duration="200"/>
<item android:drawable="@drawable/lm4" android:duration="200"/>
<item android:drawable="@drawable/lm5" android:duration="200"/>
<item android:drawable="@drawable/lm6" android:duration="200"/>
</animation-list>
3、布局文件activity_main
<RelativeLayout 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:background="@drawable/zhuzhen"
android:id="@+id/relativeLayout"
tools:context=".MainActivity" >
</RelativeLayout>
4、MainActivity.java
package com.example.zhuzhen;
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.RelativeLayout;
public class MainActivity extends Activity {
Boolean flag = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);// 初始化布局,定义一个布局管理器
final AnimationDrawable animationDrawable = (AnimationDrawable) relativeLayout.getBackground();// 创建animationdrawable对象,加载我们的设定动画
animationDrawable.start();// 启动动画
relativeLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
flag = !flag;
if (flag) {
animationDrawable.start();// 启动动画
} else {
animationDrawable.stop();// 停止动画
}
}
});
}
}
相关文章推荐
- 水木社区上看到的一道概率题
- 水木社区上看到的一道概率题
- iPhone计步器
- bzoj1864 三色二叉树
- 装饰器与函数的多层嵌套
- AngularJS中的http拦截
- ANDROID_MARS学习笔记_S01_007Linear_layout嵌套与layout_weight的设置
- 【小白的CFD之旅】03 老蓝
- hdu1272 小希的迷宫
- bzoj4318 OSU!
- KMP
- Linux下安装webstorm
- ANDROID_MARS学习笔记_S01_006ImageView
- 功能测试(二)软件的易用性
- 内存中的堆与栈到底是怎么回事?
- 三篇IMO的文章
- 为什么过去这么久,我还没谈恋爱
- hdu 5623 KK's Number(dp)
- MIC编程
- HDU 3397 Sequence operation(线段树)