Android基础知识之frame动画效果

作者:_江南一点雨 时间:2022-07-10 03:46:17 

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


<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"><!-- true表示只播放一次,false表示无限循环播放 -->
<item android:drawable="@drawable/girl_1" android:duration="100" />
<item android:drawable="@drawable/girl_2" android:duration="100" />
<item android:drawable="@drawable/girl_3" android:duration="100" />
<item android:drawable="@drawable/girl_4" android:duration="100" />
<item android:drawable="@drawable/girl_5" android:duration="100" />
<item android:drawable="@drawable/girl_6" android:duration="300" />
<item android:drawable="@drawable/girl_7" android:duration="400" />
<item android:drawable="@drawable/girl_8" android:duration="300" />
<item android:drawable="@drawable/girl_9" android:duration="100" />
<item android:drawable="@drawable/girl_10" android:duration="100" />
<item android:drawable="@drawable/girl_11" android:duration="100" />
</animation-list>

这里是11图片,前面的android:oneshot属性表示该动画执行的次数,false表示该动画反复循环播放,true则表示该动画值播放一次,duration表示每张图片显示的时间,以毫秒计。

然后看看MainActivity中的代码:


public class MainActivity extends Activity {

private ImageView iv;
private AnimationDrawable ad;

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 iv = (ImageView) this.findViewById(R.id.iv);
//  iv.setBackgroundResource(R.anim.frame);
//  ad = (AnimationDrawable) iv.getBackground();
 //上面两句,可以用下面两句代替,效果是一样的
 iv.setImageResource(R.anim.frame);
 ad = (AnimationDrawable) iv.getDrawable();
}
public void start(View v){
 //如果ad正在运行,就先让它停止下来
 if(ad.isRunning())
  ad.stop();
 ad.start();
}
}

先拿到一个ImageView,然后把frame动画设置为它的背景,最后拿到这个图片的背景并强转为AnimationDrawable,当点击该图片时,如果动画已经在运行,就让它先停止,再重新运行,否则直接运行即可。

原文链接:http://blog.csdn.net/u012702547/article/details/45716757

标签:Android,frame,动画
0
投稿

猜你喜欢

  • 解析Java线程同步锁的选择方法

    2023-02-08 11:02:32
  • 解决Jackson解析嵌套类问题(MismatchedInputException)

    2023-07-26 03:09:31
  • SpringBoot整合Mybatis-plus案例及用法实例

    2022-03-31 12:02:44
  • C#实现移除字符串末尾指定字符的方法

    2023-02-09 13:32:21
  • SpringBoot自定义加载yml实现方式,附源码解读

    2022-01-22 22:39:40
  • C#实现简单的JSON序列化功能代码实例

    2023-06-21 09:03:52
  • Android实现Back功能代码片段总结

    2021-05-27 01:33:06
  • C#命令模式(Command Pattern)实例教程

    2023-06-13 00:15:48
  • C#以太网Sockets服务器设计实现

    2023-10-10 04:38:32
  • Android屏幕旋转 处理Activity与AsyncTask的最佳解决方案

    2023-03-22 07:02:50
  • 使用logback屏蔽一些包的日志

    2023-08-08 20:46:20
  • java实现客房管理系统

    2022-10-15 23:56:33
  • Android滑动事件冲突详解(一)

    2022-07-22 18:20:22
  • 基于java构造方法Vector查找元素源码分析

    2023-11-29 04:33:30
  • 浅谈Java并发中的内存模型

    2022-09-07 17:54:47
  • Android开发中Button组件的使用

    2021-07-08 07:18:13
  • C#学习笔记- 浅谈数组复制,排序,取段,元组

    2021-10-21 00:50:58
  • springcloud使用feign调用服务时参数内容过大问题

    2022-08-31 11:23:26
  • spring hibernate实现动态替换表名(分表)的方法

    2022-06-10 14:20:03
  • 从try-with-resources到ThreadLocal,优化你的代码编写方式

    2023-11-11 03:19:52
  • asp之家 软件编程 m.aspxhome.com