用NumGo实现安卓动画

简介: NumGo是对0~1在一段时间内的变化进行监听的数值生成器(支持插值器),可以根据这些数值实现动画。项目源码在github,欢迎star:https://github.
NumGo是对0~1在一段时间内的变化进行监听的数值生成器(支持插值器),可以根据这些数值实现动画。

项目源码在github,欢迎star:https://github.com/toly1994328/NumGo

一:简单使用:让textView旋转360度动画

 mId_tv_hello = findViewById(R.id.id_tv_hello);
    new NumGo().setOnUpdate(new NumGo.OnUpdate() {
        @Override
        public void onUpdate(float rate) {
            mId_tv_hello.setRotation(rate *360);
        }
    }).go();
简单使用效果

二:基本使用

        NumGo numGo = new NumGo(true, 5, 1000);
///////////用构造函数,等价下面三句////////////////////////////
//       //设置重复方式 是否是回返式,及0~1后再1~0          ///
//        numGo.setReverse(true);//0-->1--|1-->0       ///
//        //numGo.setReverse(false);//0-->1--|0-->1   ///
//        //设置重复次数 -1无限重复                     ///             
//        numGo.setRepeatCount(5);                  ///
//        //设置时间                                   ///             
//        numGo.setTime(10000);                   ///

        //更新时监听
        numGo.setOnUpdate(new NumGo.OnUpdate() {
            @Override
            public void onUpdate(float rate) {
                mId_tv_hello.setTranslationX(100 * rate);
            }
        });
        //停止时监听
        numGo.setOnStop(new NumGo.OnStop() {
            @Override
            public void onStop() {
                mId_tv_hello.setText("I was Stopped");
            }
        });
        //重复时监听
        numGo.setOnRepeat(new NumGo.OnRepeat() {
            @Override
            public void onRepeat(int count) {
                mId_tv_hello.setText(mId_tv_hello.getText() + ":" + count);

            }
        });

        numGo.go();//运行
//        numGo.end();//停止
    }
基本使用效果

三:插值器使用:目前定义四个简单的插值器

使用

mNumGo1.setInterpolator(new D_Sin_Inter())
下面四种插值器效果比较

sin式减速

        mNumGo1 = new NumGo();
        mNumGo1.setInterpolator(new D_Sin_Inter());
        mNumGo1.setOnUpdate(new NumGo.OnUpdate() {
            @Override
            public void onUpdate(float rate) {
                mSinD.setTranslationY(-1200 * rate);
            }
        });

sin式加速

        mNumGo2 = new NumGo();
        mNumGo2.setInterpolator(new A_Sin_Inter());
        mNumGo2.setOnUpdate(new NumGo.OnUpdate() {
            @Override
            public void onUpdate(float rate) {
                mSinA.setTranslationY(-1200 * rate);
            }
        });

x平方式减速:

        mNumGo3 = new NumGo();
        mNumGo3.setInterpolator(new D_X2_Inter());
        mNumGo3.setOnUpdate(new NumGo.OnUpdate() {
            @Override
            public void onUpdate(float rate) {
                mXD.setTranslationY(-1200 * rate);
            }
        });

x平方式加速:

        mNumGo4 = new NumGo();
        mNumGo4.setInterpolator(new A_X2_Inter());
        mNumGo4.setOnUpdate(new NumGo.OnUpdate() {
            @Override
            public void onUpdate(float rate) {
                mXA.setTranslationY(-1200 * rate);
            }
        });

运行:

    @OnClick(R.id.start)
    public void onViewClicked() {
        mNumGo1.go();
        mNumGo2.go();
        mNumGo3.go();
        mNumGo4.go();
    }
相关文章
|
Linux Shell 数据安全/隐私保护
CentOS忘记密码重置密码教程
CentOS忘记密码重置密码教程
|
8月前
|
存储 JavaScript 前端开发
【JavaScript】Set、Map、WeakSet、WeakMap
Set、Map、WeakSet和WeakMap是ES6引入的新的数据结构,它们在处理数据时具有不同的特性和用途。本文将详细介绍它们的用法、特性、区别、优缺点以及使用场景和注意事项,并给出相应的代码示例
103 0
|
安全
异常
异常
79 0
|
移动开发 安全 小程序
电商收付通系统,可视化进件二级商户
传统的电商平台都是在用户确认收货后再在一定的周期内结算给商户,就是采取平台先收款的方式,但这样不仅给电商平台带来税务的问题,还影响商户的资金安全。有了电商收付通,就不存在这样的问题了。
295 0
电商收付通系统,可视化进件二级商户
|
存储 SQL 关系型数据库
[数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念
ODS 全称是 Operational Data Store**,操作数据存储.“面向主题的”,数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。
3519 0
[数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念
|
SQL 存储 JSON
BI_01_一个BI工具的痛点
BI_01_一个BI工具的痛点
159 0
|
设计模式 Java
继承和组合如何选择|设计模式基础
在前文我们讲解继承的特性时提到,继承为解决代码复用问题而生,但是在实际使用时,需要多用组合,少用继承。
|
Java
Java一些常见的坑
总是觉得自己Java基础还是不行,需要恶补。今天偶然mark了一本《Java解惑》,其中以端程序的方式罗列了95个即常见又不常见的xian(坑)jing(儿),拿来瞻仰一下。
56 0
|
canal SQL 消息中间件
数据的异构实战(一) 基于canal进行日志的订阅和转换
数据的异构实战(一) 基于canal进行日志的订阅和转换
数据的异构实战(一) 基于canal进行日志的订阅和转换
|
编译器 C++ 容器
C++按值返回对象那些事
C++按值返回对象那些事
244 0