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

mac2022-06-30  139

零、前言

项目源码在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(); 简单使用.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();//停止 } 基本使用效果

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

使用

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

后记、

1.声明:

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

2.连接传送门:

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

3.联系我

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

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg

转载于:https://www.cnblogs.com/toly-top/p/9781903.html

最新回复(0)