做一个有上下滚动效果的TextView
16lz
2021-01-25
特性
使用简单,API与TextView类似,setText方法可带有上下滚动的动画 *
支持xml设置android:textSize/android:textColor/android:textStyle等常用属性 *
可高度定制,支持任何单个字符的上下滚动变化效果
动画效果
策略
可以通过设置不同的动画策略来实现不同的滚动效果
默认的动画是小字符向大字符变化时向下滚动,反之向上滚动
也可以指定让滚动向同一个方向
进位动画可以从低位数字进位到高位数字,不止是适用于十进制。但只能用于长度小于10的字符串防止溢出整型数。只能用于包含0的字符序列,否则进位的计算将没有义。
字符的顺序
字符的顺序需要自行设置,告诉RollingTextView怎么从原字符滚动变化到目标字符 * 常用的字符顺序可以在CharOrder
常量中找到
当添加多个顺序时且都适用于目标字符和原字符,前面设置的优先级会更高
alphaBetView.addCharOrder(CharOrder.Alphabet);alphaBetView.addCharOrder(CharOrder.UpperAlphabet);alphaBetView.addCharOrder(CharOrder.Number);alphaBetView.addCharOrder(CharOrder.Hex);alphaBetView.addCharOrder(CharOrder.Binary);
滚动流畅度
可以通过传递一个 factor
参数来调整动画的流畅度。 factor
值越接近0.0,滚动会显得比较跳跃。而 factor
值越接近1.0,滚动越平滑
其他
更多的想法可自行实现 CharOrderStrategy
接口,定制自己的动画效果
配置
1、App根目录的project build.gradle文件中添加:allprojects { repositories { ... maven { url 'https://jitpack.io' } }}
2、在对应的module 中添加依赖:
dependencies { compile 'com.github.YvesCheung:RollingText:1.2.0'}
使用
xml设置
<com.yy.mobile.rollingtextview.RollingTextView android:id="@+id/alphaBetView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="i am text" android:textSize="25sp" android:textColor="#1d1d1d" android:textStyle="bold" android:gravity="center" android:shadowColor="#ffdd00" android:shadowDx="4dp" android:shadowDy="4dp"/>
代码设置
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");
作者 张艺峰
原文链接 https://blog.csdn.net/haizixm/article/details/80778673
更多相关文章
- 分支和循环(二)(零基础学习C语言)
- Android(安卓)字符串应用浅析
- Android下的动画处理
- Android学习笔记-Android应用程序初步认识
- Android(安卓)动画效果(一): 四种动画基础(Alpha、Translate、Rotate
- Unity Android(安卓)在Windows环境下使用grep指令过滤log
- Android的Json字符串用GSON解析注意的问题
- Android启动页面定时跳转的三种方法
- ANDROID中EDITTEXT设置输入条件