动画之逐帧



步骤:

第一步:在安卓xml资源文件中定义一组用于生成动画的图片资源,包含一系列的《item》,《animationlist》等标记实现。(oneshot属性设置是否循环播放,false代表循环播放,duration属性设置播放的时间)

第二步:在布局文件中定义布局的背景为我们所设置的图片资源(第一步所做的图片资源)。也可以作为mageView

的背景使用。

第三步:先创建一个布局管理器,找到布局;在创建一个animationdrawable对象,设置布局文件背景;最后在播放动画。

第四步:播放跟暂停动画的实现:首先布局设点击事件;然后定义一个标签flagtrueif判断,如果flagtrue则调用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();// 停止动画
				}

			}
		});
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值