Android Frame动画

//主Activity如下
package cn.com;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
//Frame Animation步骤
//1 在res下建立anim文件夹
//2 在anim下建立frameanim.xml文件
//  在此xml文件中定义了动画所使用的图片
//  注意:
//  (1)Frame Animation的xml文件中根节点是<animation-list>
//  (2)android:oneshot属性定义了是否重复动画
//  (3)然后在每个<item>里面定义每一帧所展示的图片,以及图片持续的时间
//3 在主Activity里面使用一个ImageView来展示动画.
//  注意:设置android:src="@anim/frameanim"指明要展示的动画
//4 若动画只播放一次,那么在android:oneshot="true"
//  在frameanim.xml中最后一个<item>定义为
//  <item android:drawable="@android:id/empty" android:duration="180" />
//  这样设置后动画播放完毕时,不会停留在最后一张图片上
//  核心点:
//1 Android中使用AnimationDrawable类来定义和使用帧动画
//2 和动画有关的方法不能在Activity的onCreate()方法中调用
//  因为此时AnimationDrawable还未完全和ImageView绑定
//
//
public class TestFrameAnimActivity extends Activity {
   private Button animButton;
   private ImageView animImageView;
   private AnimationDrawable animationDrawable;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        animButton=(Button) findViewById(R.id.animButton);
        animImageView=(ImageView) findViewById(R.id.animImageView);
        //创建AnimationDrawable对象!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        animationDrawable=(AnimationDrawable) animImageView.getDrawable();
        animButton.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				controlAnim();
			}
		});
    }

    private void controlAnim(){//控制动画
    	if(animationDrawable.isRunning()){
    		animationDrawable.stop();
    		animButton.setText("开始动画");
    	}else{
    		animationDrawable.stop();
    		animationDrawable.start();
    		animButton.setText("停止动画");
    	}
    }
}

//main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/animButton"
        android:layout_width="70dip"
        android:layout_height="70dip"
        android:text="start"
     />
    <ImageView
        android:id="@+id/animImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:src="@anim/frameanim"
     />

</LinearLayout>

//frameanim.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/a" android:duration="180" />
    <item android:drawable="@drawable/b" android:duration="180" />
    <item android:drawable="@drawable/c" android:duration="180" />
    <item android:drawable="@drawable/d" android:duration="180" />
    <item android:drawable="@drawable/e" android:duration="180" />
    <item android:drawable="@drawable/f" android:duration="180" />
    <item android:drawable="@drawable/g" android:duration="180" />
    <item android:drawable="@drawable/h" android:duration="180" />
</animation-list>
时间: 2024-10-28 14:08:46

Android Frame动画的相关文章

Android基础知识之frame动画效果_Android

上一篇我们说了Android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示. 新建一个android项目,名字叫做frameTest,在res文件夹下新建一个文件夹叫做anim,我们的frame动画的xml文件就放在这里. 在anim中新建一个frame.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> &

我的Android进阶之旅------&amp;gt;Android之动画之Frame Animation实例

============================首先看看官网上关于Frame animation的介绍================================ 地址:http://developer.android.com/guide/topics/resources/animation-resource.html#Frame Frame animation An animation defined in XML that shows a sequence of images i

Android编程中Tween动画和Frame动画实例分析_Android

本文实例讲述了Android编程中Tween动画和Frame动画实现方法.分享给大家供大家参考,具体如下: Animation主要有两种动画模式:Tween动画和Frame动画 Tween动画由四种类型组成 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 res目录下新建anim创建Tween.xml <?xml version="1.0" encoding="utf-8

Android编程中Tween动画和Frame动画实例分析

本文实例讲述了Android编程中Tween动画和Frame动画实现方法.分享给大家供大家参考,具体如下: Animation主要有两种动画模式:Tween动画和Frame动画 Tween动画由四种类型组成 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 res目录下新建anim创建Tween.xml <?xml version="1.0" encoding="utf-8

Android基础知识之frame动画效果

上一篇我们说了Android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示. 新建一个android项目,名字叫做frameTest,在res文件夹下新建一个文件夹叫做anim,我们的frame动画的xml文件就放在这里. 在anim中新建一个frame.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> &

Android Animations动画使用详解

一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 二. Android动画模式 Animation主要有两种动画模式:tweened 和 frame 一种是tweened animation(渐变动画) 三.XML文件中定义动画 ① 打开Eclipse,新建Android工程 ② 在res目录中新建anim文件夹 ③ 在anim目录中新建一个myanim.xml(注意文件名小写) ④ 加入XML的动画代码

Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍_Android

主要介绍Android中如何使用rotate实现图片不停旋转的效果.Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果:第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似.本文分析 Tween动画的rotate实现旋转效果. 在新浪微博客户端中各个操作进行中时activity的右上角都会有个不停旋转的图标,类似刷新的效果,给用户以操作中的提示.这种非模态的提示方式推荐使用,那么下面就分享下如何实现这种效果

Android Animation动画详解(一): 补间动画

前言 你有没有被一些APP中惊艳的动画效果震撼过,有没有去思考,甚至研究过这些动画是如何实现的呢? 啥?你没有思考,更没有研究过? 好吧,那跟着我一起来学习下如何去实现APP中那些让我们惊羡的动画特效吧,come on! 一.Android的动画类型 Tween Animation 补间动画 Frame Animation 帧动画 Layout Animation 布局动画 Property Animation 属性动画 总体来讲,Android中的动画就这四种,而我们常常在APP中看到的动画多

Android实现动画效果详解_Android

目前Android平台提供了两类动画一类是Tween动画,第二类就是 Frame动画,具体内容介绍请看下文: 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似. 实现动画有两种方式:一种使用XML文件(文件放在res/anim),一种直接代码搞定  1.透明度控制动画效果alpha <!-- 透明度控制动画效果alpha 浮点型值: fromAlpha 动画起始时透明