具有数字增加动画的 TextView (A increasing Number TextView with animation)
- 添加前缀、后缀
- 支持任意大小的整数或小数
- 可选择是否添加千位分隔符
- 可选择数字变化才有动画
- 超过某个数才有变化,可选择变化的区间
- API 简单
// 设置最终值,开始动画
mShiftyTextview.setNumberString("98765432.75");
// 设置前缀
mShiftyTextview.setPrefixString("¥");
// 设置后缀
mShiftyTextview.setPostfixString("%");
// 设置动画时长
mShiftyTextview.setDuration(2000);
// 设置数字增加范围
mShiftyTextview.setNumberString("19.75", "99.75");
// 禁用动画
mShiftyTextview1.setEnableAnim(false);
- app:duration [integer def:2000] -->animation Duration
- app:minNum [float def:0.1f] --> the minNub
- app: numStart[string def:0]-->start Nub
- app: numEnd[string def: ]-->end Nub
- app: prefixString[string def:]-->prefixion,eg:$
- app: postfixString[string def: ]-->postfix ,eg:%
- app: useCommaFormat[boolean def:true ]-->useCommaFormat,eg:123,145
- app: runWhenChange[boolean def:true ]-->runWhenChange,if no changes,no animation
- app: isEnableAnim[boolean def:true ]-->EnableAnim
<!--动画时间-->
<attr name="duration" format="integer"></attr>
<!--最小的数,小于这个数没有动画,默认为0.1-->
<attr name="minNum" format="float"></attr>
<!--动画开始的数-->
<attr name="numStart" format="string|reference"></attr>
<!--动画最后的数-->
<attr name="numEnd" format="string|reference"></attr>
<!--前缀-->
<attr name="prefixString" format="string|reference"></attr>
<!--后缀-->
<attr name="postfixString" format="string|reference"></attr>
<!--是否使用动画-->
<attr name="isEnableAnim" format="boolean"></attr>
<!--是否使用每三位数字一个逗号-->
<attr name="useCommaFormat" format="boolean"></attr>
<!--是否当内容改变的时候使用动画,不改变则不使用动画-->
<attr name="runWhenChange" format="boolean"></attr>
在项目根目录下的build.gradle中的allprojects{}中,添加jitpack仓库地址,如下:
allprojects {
repositories {
jcenter()
maven { url 'https://jitpack.io' }//添加jitpack仓库地址
}
}
打开app的module中的build.gradle,在dependencies{}中,添加依赖,如下:
dependencies {
compile 'com.github.yiwent:ShiftyTextview:1.1.0'
}
<com.yiwent.viewlib.ShiftyTextview
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="47dp"
android:textSize="28sp"
app:useCommaFormat="false"
app:runWhenChange="false"
/>
mShiftyTextview.setPrefixString("¥");
mShiftyTextview.setNumberString("99998.123456");
// mShiftyTextview1.setEnableAnim(true);
mShiftyTextview1.setNumberString("123456.09");
mShiftyTextview2.setPostfixString("%");
mShiftyTextview2.setNumberString("99.75");