动画切换数字,字符view

来源:互联网 发布:绝仁弃义 知乎 编辑:程序博客网 时间:2024/05/16 10:47

效果图
这里写图片描述

1.添加compile

compile 'com.robinhood.ticker:ticker:1.0.0'

2.在xml

<com.robinhood.ticker.TickerView      android:id="@+id/tickerView"      android:gravity="center"      app:ticker_textColor="@color/colorPrimaryDark"      app:ticker_textSize="20dp"      android:layout_width="wrap_content"      android:layout_height="wrap_content" />

3.实现java

TickerView tickerView = findViewById(R.id.tickerView);tickerView.setCharacterList(TickerUtils.getDefaultNumberList());//显示全数字的方法,若string中含有其他字符报错。//TickerUtils.getDefaultListForUSCurrency()这个是显示美元需要的字符集合,效果为前面的效果图。tickerView.setAnimationDuration(500);tickerView.setAnimationInterpolator(new OvershootInterpolator());
protected static final Random RANDOM = new Random(System.currentTimeMillis());    protected String getRandomNumber(int digits) {        final int digitsInPowerOf10 = (int) Math.pow(10, digits);        return Integer.toString(RANDOM.nextInt(digitsInPowerOf10) +                digitsInPowerOf10 * (RANDOM.nextInt(8) + 1));    }//显示8-9位数字调用方法,TickerUtils.getDefaultNumberList()tickerView.setText(getRandomNumber(8));

当然该文本还支持输入自定义字符。

//这里自定义可以输入英文大小写字母char[] alphabetlist = new char[53];alphabetlist[0] = TickerUtils.EMPTY_CHAR;for (int i = 0; i < 2; i++) {    for (int j = 0; j < 26; j++) {        // Add all lowercase characters first, then add the uppercase characters.        alphabetlist[1 + i * 26 + j] = (char) ((i == 0) ? j + 97 : j + 65);    }}//调用过程protected static final Random RANDOM = new Random(System.currentTimeMillis());private String generateChars(Random random, char[] list, int numDigits) {        final char[] result = new char[numDigits];        for (int i = 0; i < numDigits; i++) {            result[i] = list[random.nextInt(list.length)];        }        return new String(result);    }//从alphabetlist随机取到digits个字符组拼成一个字符做显示。tickerView.setText(generateChars(RANDOM, alphabetlist, digits));

具体github地址:https://github.com/robinhood/ticker

0 0