美文网首页
动画合集之帧动画

动画合集之帧动画

作者: 巫师Android | 来源:发表于2020-09-18 10:28 被阅读0次

1、概念

帧动画是由N张静态图片依次显示而产生的。

2、用法

要实现帧动画,需要用到AnimationDrawable类。

3、示例:

效果图:


帧动画展示

实现步骤:
1)在drawable中,创建frame_animation.xml。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
<!-- onshot:是否只播放一次-->

    <item android:drawable="@drawable/p1" android:duration="1000"/>

    <item android:drawable="@drawable/p2" android:duration="1000"/>

</animation-list>

oneshot:表示是否只播放一次,若是,动画会停在最后一帧

2)将其设置为ImageView的background。

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

    <Button
        android:id="@+id/btn_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始" />

    <Button
        android:id="@+id/btn_stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止" />

    <ImageView
        android:id="@+id/img_show"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_gravity="center"
        android:background="@drawable/frame_animation" />

</LinearLayout>

3)在MainActivity中获取、启动动画。

public class FrameAnimationActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btnStart, btnStop;
    private ImageView imgShowFrame;
    private AnimationDrawable anim;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_frame_animation);

        initViews();
        anim = (AnimationDrawable) imgShowFrame.getBackground();
    }

    private void initViews() {
        btnStart = findViewById(R.id.btn_start);
        btnStop = findViewById(R.id.btn_stop);
        btnStart.setOnClickListener(this);
        btnStop.setOnClickListener(this);

        imgShowFrame = findViewById(R.id.img_show_frame);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_start:
                anim.start();
                break;
            case R.id.btn_stop:
                anim.stop();
                break;
            default:
        }
    }
}

拓展:
帧动画优化:https://github.com/ansen360/FrameAnimation

写于:2020/09/18

相关文章

  • 动画合集之补间动画

    前面学了帧动画:动画合集之补间动画 和帧动画不同(帧动画是通过连续播放图片来模拟动画效果),补间动画只需要开发者提...

  • 动画合集之帧动画

    1、概念 帧动画是由N张静态图片依次显示而产生的。 2、用法 要实现帧动画,需要用到AnimationDrawab...

  • Android开发之帧动画

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

  • Android开发之属性动画

    Android动画主要分为3种 View动画(Android开发之View动画) 帧动画(Android开发之帧动...

  • android 动画基础

    分类 :帧动画 (图片动画)视图动画属性动画 帧动画 :有多个图片组成方法 :· AnimationDrawab...

  • 属性动画详解

    1. 动画分类 Android 中动画分为 3 种:View 动画(视图动画)、帧动画、属性动画。 (1)帧动画:...

  • Android 基础动画之属性动画详解

    上两篇文章主要介绍了 Android 基础动画之帧动画 以及 Android 基础动画之补间动画 。本篇文章主要介...

  • Android 动画

    android动画分为三种 帧动画,视图动画(补间动画),属性动画逐帧动画 视图动画 属性动画 Window和A...

  • cocos creator (1) ——帧动画

    帧动画 整体流程 帧动画,就是通过一系列图片定义动画表现的动画形式,首先我们需要动画运行所需的所有帧。 这些帧通常...

  • Android 动画总结

    Android 中的动画可以分为以下几类: 逐帧动画 补间动画 属性动画 一、逐帧动画 逐帧动画的原理就是让一系列...

网友评论

      本文标题:动画合集之帧动画

      本文链接:https://www.haomeiwen.com/subject/jbwfjktx.html