Android中帧动画的实现

对于Android中动画的实现,Android中的动画主要有帧动画,补间动画,属性动画,层layer。

所谓的帧动画就是多张图片进行循环的切换形成的效果。

实现步骤:

①在res文件夹下新建文件夹drawable

②在drawable文件夹下新建xml文件,类型为:animation-list

③把我们要切换的图片通过添加item的方式添加到animation-list中

④在代码中引用我们创建的布局

一、

drawable文件夹下的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<!-- 动画列表 
android:oneshot="true/false"
如果为true:则表示item中的图片只循环一次
如果为false:则表示item中的图片无限循环

-->
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <!-- 
    	一个item项表示一张图片
    android:drawable引用资源中的图片 	android:duration 显示的时间:毫秒-->
    <item android:drawable="@drawable/anim1" android:duration="100"></item>
    <item android:drawable="@drawable/anim2" android:duration="100"></item>
    <item android:drawable="@drawable/anim3" android:duration="100"></item>
    <item android:drawable="@drawable/anim4" android:duration="100"></item>
    <item android:drawable="@drawable/anim5" android:duration="100"></item>
    <item android:drawable="@drawable/anim6" android:duration="100"></item>
    <item android:drawable="@drawable/anim7" android:duration="100"></item>
    <item android:drawable="@drawable/anim8" android:duration="100"></item>
    <item android:drawable="@drawable/anim9" android:duration="100"></item>
    <item android:drawable="@drawable/anim10" android:duration="100"></item>
    <item android:drawable="@drawable/anim11" android:duration="100"></item>
    <item android:drawable="@drawable/anim12" android:duration="100"></item>

</animation-list>
二、

MainActivity中的实现:

package com.example.text01;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.view.Menu;
import android.view.View;
import android.view.animation.Animation;
import android.widget.ImageView;

public class MainActivity extends Activity {

	private ImageView iv;
	private AnimationDrawable animationDrawable;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv = (ImageView) findViewById(R.id.iv);
		// 代码中设置资源
		iv.setBackgroundResource(R.drawable.frame_animation);
		animationDrawable = (AnimationDrawable) iv.getBackground();
	}

	public void start(View view) {
		// 判断当前的动画是否正在运行
		if (!animationDrawable.isRunning()) {

			animationDrawable.start();
		}
	}

	public void stop(View view) {
		if (animationDrawable.isRunning()) {

			animationDrawable.stop();
		}
	}

}
运行结果:


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值