帧动画补间动画

Android系统中的动画
  在Android系统中,动画可分为三类,分别为帧动画(Frame Animation),补间动画(Tweened Animation),属性动画。本章主要讲述帧动画和补间动画。

帧动画

帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。其表现出来的样式类似于我们常见到的GIF图。而帧动画所呈现的结果也依赖于每一“帧”,大家先看效果图:

先是写一个xml文件

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/progress_loading_image_01" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_02" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_03" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_04" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_05" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_06" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_07" android:duration="50"></item>
    <item android:drawable="@mipmap/progress_loading_image_08" android:duration="50"></item>
</animation-list>

时间以及图片

然后是代码

@ContentView(R.layout.activity_xml_frame)
public class FrameXMLActivity extends Activity{

    @ViewInject(R.id.iv_frame)
    private ImageView imageView;

    private AnimationDrawable animationDrawable;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        x.view().inject(this);
        animationDrawable = (AnimationDrawable) imageView.getBackground();
    }

    @Event(value = {R.id.bntStartFrame,R.id.bntStopFrame},type = View.OnClickListener.class)
    private void click(View view){
        switch (view.getId()){
            case R.id.bntStartFrame:
                startFrame();
                break;
            case R.id.bntStopFrame:
                stopFrame();
                break;
        }
    }
    //关闭帧动画
    private void stopFrame() {
        if(animationDrawable.isRunning()){
            animationDrawable.stop();
        }

    }

    //开启帧动画
    private void startFrame() {
        if(!animationDrawable.isRunning()){
            animationDrawable.start();

        }
    }
}
  1. 补间动画(Tween)
      补间动画指的是做flash动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。也就是说在使用补间动画时,我们开发者指定了动画开始、结束的关键帧,中间的变化是计算机自动帮助我们补齐的。
      补间动画有四种基本形式,分别是Alpha(透明度),Translate(位移),Scale(缩放),Rotate(旋转)。当然还可以是多种动画效果的组合,例如alpha+translate、alpha+rotate,甚至四种形式组合在一起的动画。同样,和帧动画一样,补间动画的可以以xml的方式实现,也可以以代码的方式实现

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
补间动画方法很多就只放一下方法吧,我自己也没练好呢,回头会再发详细的补间

INTERESTING!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值