一个支持上下滚动动画的Android(安卓)TextView
16lz
2022-04-26
RollingTextView
preview
特性
- 使用简单,API与TextView类似,setText方法可带有上下滚动的动画
- 支持xml设置android:textSize/android:textColor/android:textStyle等常用属性
- 可高度定制,支持任何单个字符的上下滚动变化效果
动画效果
策略
可以通过设置不同的动画策略来实现不同的滚动效果
StrategyCompare默认的动画是小字符向大字符变化时向下滚动,反之向上滚动
也可以指定让滚动向同一个方向
进位动画可以从低位数字进位到高位数字,不止是适用于十进制。但只能用于长度小于10的字符串防止溢出整型数。只能用于包含0的字符序列,否则进位的计算将没有意义。
字符的顺序
- 字符的顺序需要自行设置,告诉RollingTextView怎么从原字符滚动变化到目标字符
- 常用的字符顺序可以在
CharOrder
常量中找到 - 当添加多个顺序时且都适用于目标字符和原字符,前面设置的优先级会更高
alphaBetView.addCharOrder(CharOrder.Alphabet);alphaBetView.addCharOrder(CharOrder.UpperAlphabet);alphaBetView.addCharOrder(CharOrder.Number);alphaBetView.addCharOrder(CharOrder.Hex);alphaBetView.addCharOrder(CharOrder.Binary);
charOrderCompare 滚动流畅度
stickyFactor可以通过传递一个
factor
参数来调整动画的流畅度。factor
值越接近0.0,滚动会显得比较跳跃。而factor
值越接近1.0,滚动越平滑
其他
更多的想法可自行实现 CharOrderStrategy
接口,定制自己的动画效果
配置
-
在App根目录的project build.gradle文件中添加:
allprojects { repositories { ... maven { url 'https://jitpack.io' } }}
-
在对应的module 中添加依赖:
dependencies { compile 'com.github.YvesCheung:RollingText:1.2.0'}
使用
xml设置
代码设置
final RollingTextView rollingTextView = findViewById(R.id.alphaBetView);rollingTextView.setAnimationDuration(2000L);rollingTextView.setCharStrategy(Strategy.NormalAnimation);rollingTextView.addCharOrder(CharOrder.Alphabet);rollingTextView.setAnimationInterpolator(new AccelerateDecelerateInterpolator());rollingTextView.addAnimatorListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { //finsih }});rollingTextView.setText("i am a text");
更多相关文章
- Android中动态初始化布局参数以及ConstraintLayout使用中遇到的
- Android双向侧边滑动实现
- android中TextView中如何设置水平滚动效果
- [置顶] android中使用jni对字符串加解密实现分析
- Android(安卓)动画系列之逐帧(Frame)动画详解
- android中TextView中如何设置水平滚动效果
- Android(安卓)打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单
- android中TextView中如何设置水平滚动效果
- android中TextView中如何设置水平滚动效果