Android 帧动画(Frame Animation)

前言

自己从事Android这个工作,但是很少写这样的帖子。然后想把自己学习到的点点滴滴都记录下来然后分享给大家。


Android中的动画

首先我们知道Android中的动画有传统动画和属性动画,传统的动画就是我们这里的(帧动画和补间动画)。今天就像大家介绍下帧动画。

1、帧动画
帧动画其实就可以理解为把多张连续的图片一帧一帧的播放出来,就像GIF,或者有点像最早的电影一样,其实是图片只是加快了切换的速度在视觉上就像电影一样。这种动画比较依赖UI。

我们先来看一下项目的结构

在res文件的drawable里面创建一个xml文件,文件名字看个人的喜好。我这里放的图片是在网上随便找的图片。

让我们 看看animation里面是怎么写的吧

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/a" android:duration="50"></item>
    <item android:drawable="@drawable/b" android:duration="50"></item>
    <item android:drawable="@drawable/c" android:duration="50"></item>
    <item android:drawable="@drawable/d" android:duration="50"></item>
    <item android:drawable="@drawable/e" android:duration="50"></item>
    <item android:drawable="@drawable/f" android:duration="50"></item>
    <item android:drawable="@drawable/g" android:duration="50"></item>
    <item android:drawable="@drawable/h" android:duration="50"></item>
    <item android:drawable="@drawable/i" android:duration="50"></item>
    <item android:drawable="@drawable/j" android:duration="50"></item>
    <item android:drawable="@drawable/k" android:duration="50"></item>
    <item android:drawable="@drawable/l" android:duration="50"></item>
    <item android:drawable="@drawable/m" android:duration="50"></item>
    <item android:drawable="@drawable/n" android:duration="50"></item>
    <item android:drawable="@drawable/o" android:duration="50"></item>
</animation-list>

drawable里面就是放你的图片,duration每张图片执行的时间。
android:oneshot=”false”这个的意思是循环 false无限循环 true不循环


再来看看xml的布局是怎么的,其实就很简单

<ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/animation"/>

就是一个ImageView在他的background里面来接收刚刚的动画animation


再来看看MainActivity中

 img = (ImageView) findViewById(R.id.image);
 AnimationDrawable animationDrawable = (AnimationDrawable) img.getBackground();
 //animationDrawable.setOneShot(false);
 animationDrawable.start();

这个地方也可以通过代码来设置是否无限循环。

这一篇就占时先说的这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值