• 开源计划之--Android数字运动小插件--NumGo


    零、前言

    项目源码在github,欢迎star:https://github.com/toly1994328/NumGo
    主要作用:对0~1在一段时间内的变化进行监听的数值生成器(支持插值器),可以根据这些数值实现动画。
    具有开始监听、结束监听、重复时监听、支持插值器

    一 简单使用:让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();
    
    9414344-c6eb6954b2ff7c3d.gif
    简单使用.gif

    二、 基本使用

            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();//停止
        }
    
    9414344-7d37fdab1a3a67c0.gif
    基本使用效果

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

    使用

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

    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();
        }
    

    后记、

    1.声明:

    [1]本文由张风捷特烈原创,转载请注明
    [2]欢迎广大编程爱好者共同交流
    [3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
    [4]你的喜欢与支持将是我最大的动力

    2.连接传送门:

    更多安卓技术欢迎访问:安卓技术栈
    我的github地址:欢迎star
    简书首发,腾讯云+社区同步更新
    张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

    3.联系我

    QQ:1981462002
    邮箱:1981462002@qq.com
    微信:zdl1994328

    4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
    9414344-c474349cd3bd4b82.jpg
    公众号.jpg
  • 相关阅读:
    OSG绘制几何图形
    OSGMFC
    OSG第一个Demo
    线性四叉树十进制Morton码计算示例
    单源最短路径——Dijkstra算法学习
    .Net内存优化的几点经验
    强制回收和IDisposable.Dispose方法
    七参数计算正确性验证——Coord软件使用
    [转载]windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解
    T4自动生成数据库C#实体类学习(1)
  • 原文地址:https://www.cnblogs.com/toly-top/p/9781903.html
Copyright © 2020-2023  润新知