用NumGo实现安卓动画
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();
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
人生
2018年7月9日 得到一把绝世神兵,却将它回炉重锻的剑者说过:人因创造而伟大,生因创造而精彩。无敌并不是真的那么重要,有敌也许会让自己更加精进。 2018年7月10日 在历史的洪流中,无名者的残骸堆成泥沙,不见天日;失败者的悔恨化作流水,翻涌不息;成功者的英魂缀成星河,指引前行。 2018年7月12日 作茧自缚并不可怕,万一化茧成蝶了呢。黑暗中摸索前进的人,无论多么微小,其光芒都会成为路上的第一批星辰。 2018年7月24日 javascript作为一个10天就完成核心语法的语言,一步步在web前端摸爬滚打,依靠着薄弱的语法基础,在漫长的时间使用原型模仿类的概念,利用模块模拟包的概念,直至ES6,js终于拜托了自身的束缚,脱胎换骨——一身华丽的战甲披身,凌乱的头发也梳妆整齐,手持node长枪,威临天下。成为编程界一大战将,征伐各个领域。一部前端史便是javascript的奋斗史 2018年7月31日 卓越的雕刻师绝不会拒绝使用刀具去徒手创造,但绝对鄙夷购买一件精品装点后作为自己的作品。这是人格的尊严,是创造者的恪守。编码者亦如此。 2018年8月29日 成长:当看到自己曾经的作品感觉...
-
下一篇
tomcat服务器宕机解决方案
报错信息: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) 每次出现这个报错都会导致tomcat应用服务器停机,加了下面的java代码后就再也没有停过了。 解决办法: 编写Java代码 package cn.listener; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Enumeration; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.ser...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- MySQL数据库在高并发下的优化方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池