Android中帧动画的实现

来源:互联网 发布:macbook u盘接口知乎 编辑:程序博客网 时间:2024/06/05 21:16

对于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;@Overrideprotected 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
原创粉丝点击