Ticker是一款非常强大的,可扩展的一个自定义的显示滚动文字的控件,他由Robinhood(罗宾侠)工程师团队创建的UI控件.

Ticker处理了字符切换与数字增长的动画。他具有以下优点:

高性能:动画不会导致任何卡顿,尤其是在滚动和滑动的时候。

低内存消耗:比如:不能使用多个View。

可插入:核心逻辑应该被合理的封装,这样UI模块可以在不同的地方重用。

简单,可扩展的API:只需定义文字的渲染和动画方式。

尽可能低的Android SDK version需求。

现在来看一个展示价格的小例子:(效果图)

效果图

怎么样是不是很炫很酷很想试一试:

那么接下来,我们就来一起做个Demo吧!!

1.建一个AndroidStudio项目

2.将Ticker第三方jar包在app的build.gradle中依赖如下图

3.将Ticker加入到MainActivity的布局文件中如下图:

4.在Activity中引入控件并实现控制显示逻辑:代码如下(已经精心排序,爱心注释,不啰嗦了)

1.建一个AndroidStudio项目

用AS建一个项目

2.将Ticker第三方jar包在app的build.gradle中依赖如下图

引入依赖

3.将Ticker加入到MainActivity的布局文件中如下图:

这里写图片描述

4.在Activity中引入控件并实现控制显示逻辑:代码如下(已经精心排序,爱心注释,不啰嗦了)

public class MainActivity extends AppCompatActivity {

private static final char[] CURRENCY_LIST = TickerUtils.getDefaultListForUSCurrency();//文本类型为:通用类型

protected static final Random RANDOM = new Random(System.currentTimeMillis());//当前毫秒数范围类的随机数

private TickerView tickerView;

private Handler handler = new Handler();//定义一个handle用来启动线程来动态更新UI

private boolean resumed;//定义一个开关:是否可以开始动态改变Ticker上的text

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tickerView= (TickerView) findViewById(R.id.tickerView);

tickerView.setCharacterList(CURRENCY_LIST);//设置显示文字类型:通用

tickerView.setTextSize(56);//设置文字大小,自己经验:jar包导入推荐使用代码设置文字大小

tickerView.setAnimationDuration(500);//设置动画持续时间

tickerView.setAnimationInterpolator(new OvershootInterpolator());//设置动画插值器

tickerView.setGravity(Gravity.CENTER);//设置对齐方式

}

@Override

protected void onResume() {

super.onResume();

resumed = true;//打开开关

handler.post(createRunnable());//启动更新UI的线程

}

/**

* 递归

* 创建Runnable对象(动态延迟)

* @return

*/

private Runnable createRunnable() {

return new Runnable() {

@Override

public void run() {

onUpdate();//更新UI

if (resumed) {

handler.postDelayed(createRunnable(), RANDOM.nextInt(1750) + 250);

}

}

};

}

/**

* 更新界面显示

*

*/

protected void onUpdate() {

final int digits = RANDOM.nextInt(2) + 6;//将digits(字符长度)限定在[6,8]内

tickerView.setText("$"+getRandomNumber(digits));

}

/**

* 将数值通过固定算法并转化成字符串

* @param digits

* @return

*/

protected String getRandomNumber(int digits) {

final String currencyFloat = Float.toString(RANDOM.nextFloat() * 1000);//价格显示范围在1000$内

final String showText = currencyFloat.substring(0, digits-1);//在[0,digits)之间取一个子字符串

return showText;

}

@Override

protected void onPause() {

resumed = false;//关闭开关

super.onPause();

}

}

android数字滚动控件,Ticker 滚动数字控件相关推荐

  1. [Android]自定义View带效果的滚动数字

    [Android]自定义View带效果的滚动数字 @Author GQ 2016年07月29日 一个可以让数字滚动的View,可以自定义参数,是想要的那种效果! 原文github地址 效果图 Andr ...

  2. Android RecyclerView实现类似于老虎机抽奖,数字滚动等动画效果

    1.RecyclerViewLoopScrollAnimation项目介绍 RecyclerViewLoopScrollAnimation 适用于Android RecyclerView的循环滚动动画 ...

  3. 【Android】App首页上下滚动快报控件 通知控件 类似京东快报控件(一)

    前言 快过年了,对于大伙来说手头上的事情做完没有呢,马上也该让自己轻松一阵子了,哈哈哈.好,说正事,由于公司App这个版本首页的改版,新增了很多新的控件,类似于京东快报这种控件的话我在写之前也去找了一 ...

  4. android 数字滚动抽奖_Android TextView自定义数字滚动动画

    背景 在开发需求当中,当有总收益.总用户数等数字要显示时,为了更好的给用户提供展示效果,往往会想加入炫酷的数字滚动动画,使呆板平静的数字变得灵活起来,给人一种增值的直观感受. 简介 NumberRol ...

  5. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  6. vue利用 vue-animate-number插件动态展示数字(从0动态滚动到指定数字)

    vue利用 vue-animate-number插件动态展示数字(从0动态滚动到指定数字) 第一步:安装vue-animate-number插件 $ npm install vue-animate-n ...

  7. 自定义控件——改造已有的控件——不滚动的列表视图

    不滚动的列表视图 把ListView放入ScrollView会产生问题,因为ScrollView和ListView都允许滚动,那么在双方的重叠区域,上下滑动的手势究竟表示要滚动哪个视图? Androi ...

  8. android 父控件的背景_android控件的属性

    android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...

  9. Android限定EditText的输入类型为数字或者英文(包括大小写)

    http://hi.baidu.com/tozhang/item/4dfeaafb9aec2813d7ff8c99 Android限定EditText的输入类型为数字或者英文(包括大小写) // 监听 ...

最新文章

  1. 打开chm文件不能显示内容的解决办法
  2. 将tif文件转化为png文件 Python3
  3. 一次打包,无限复用!教你用 PyCharm 搭建一劳永逸的开发环境
  4. OGNL使用方法总结
  5. 用camelot读取表格_如何使用Camelot从PDF提取表格
  6. 网络知识:宽带下载网速是30MB/s,经过路由器后仅10MB/s,看完你就懂了!
  7. 查询hive表_大数据中Hive与HBase的区别与联系
  8. 【HDU1277】全文检索(ac自动机/字典树)
  9. vcenter客户端控制虚拟服务器报错:“VMRC 控制台的连接已断开”
  10. intersystem-M语言基础语法
  11. PIE-Engine教程—中国降水分布可视化加载以2018年为例(含图例添加)
  12. 使用matlab在图片上画框,并保存
  13. 浅学C#(3)——C#的优点和缺点
  14. amd cpu 型号大全
  15. 细看10个不同类型的社交平台
  16. 计算机系统管理规程考试题,计算机基础考试卷试题及标准答案.docx
  17. 2022.1.12C语言小练
  18. 基于莱维飞行改进的粒子群算法输电线桩路径优化,粒子群算法通过shubert函数测试效果,混沌粒子群
  19. 逻辑分析仪的使用--LA1010
  20. CAD格式转换大全你想要的转换格式这里都有

热门文章

  1. [Python]PEP8 编码规范及开发中的一些惯例和建议
  2. matlab仿真中pv,PV的matlab仿真
  3. mac外接键盘HOME,END键问题
  4. Boardcast03
  5. 单片机使能是什么意思?
  6. 孟:解密获取网站访客QQ号码的方法及原理
  7. 商业广告CPT-物料召回
  8. 微信小程序点击更改样式-点击获得下划线
  9. 区分统一社会信用代码、组织机构代码、注册号
  10. 【EXCEL】用公式筛选符合条件的内容,输出固定格式字符