Android开发之帧动画

Android动画主要分为3种
  • View动画(Android开发之View动画)
  • 帧动画
  • 属性动画
何为帧动画?

帧动画最简单,通过顺序播放一系列的图像产生动画,有点类似动画片

以tomcat案例来讲解

1、首先准备好一组图片(网上找的现成的一组图片),然后定义一个AnimationDrawable,命名为ani.xml,按照图片顺序排好,如下:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
    <item android:drawable="@drawable/background" android:duration="100"></item>
    <item android:drawable="@drawable/poke_belly_right_0001" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0002" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0003" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0004" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0005" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0006" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0007" android:duration="100"/>
    <item android:drawable="@drawable/poke_belly_right_0008" android:duration="100"/>
    <item android:drawable="@drawable/background" android:duration="100"></item>
</animation-list>
2、将上述的Drawable作为ImageView的背景
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/ani" />

</RelativeLayout>
3、通过AnimationDrawable 来播放动画,这里设置点击背景时触发动画,代码很简单,就没有加注释了
public class MainActivity extends Activity
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) findViewById(R.id.imageView1);

        final AnimationDrawable background = (AnimationDrawable) imageView
                .getBackground();
        imageView.setOnClickListener(new OnClickListener()
        {

            public void onClick(View v)
            {
                background.start();
            }
        });
    }

}
4、运行测试

帧动画.gif

5、注意点

帧动画虽然比较简单,但由于都是图片连续播放形成的,在图片比较多且较大的时候,容易引起OOM,所以需要谨慎选择。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

Android项目实战(七):Dialog主题Activity实现自定义对话框效果

50080
来自专栏向治洪

滑动开关按钮SlideSwich

iphone上有开关控件,很漂亮,其实android4.0以后也有switch控件,但是只能用在4.0以后的系统中,这就失去了其使用价值,而且我觉得它的界面也...

420100
来自专栏水击三千

ImageButton与Button

1.Button控件 Butotn控件,主要用来实现一些命令操作,通过注册监听事件来实现。首先需要在xml文档中放入一个button按钮。 1 <But...

29590
来自专栏Android开发经验

ScrollView里面基于某个View弹出PopupWindow,PopupWindow不会跟着View滚动?

21720
来自专栏水击三千

TimePicker控件、帧动画、补间动画

1.TimePicker控件 最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进...

282100
来自专栏Android干货

安卓开发_浅谈Android动画(三)

18640
来自专栏Android开发指南

Scrollview回弹效果自定义控件

33950
来自专栏7号代码

Android应用界面开发——ListView,GridView,ScrollView

ListView的意思是列表视图,是应用最广泛的一种视图,例如联系人,功能列表,菜单等等都会用到ListView。

11830
来自专栏Android干货

Android项目实战(三十二):圆角对话框Dialog

42760
来自专栏移动开发

PopupWindow显示在某个控件上方

PopupWindow有一个显示在在某个上方的方法,但是没有定义一个在控件下方的方法,不知为何.这里提供一个小思路:

27120

扫码关注云+社区

领取腾讯云代金券