0
点赞
收藏
分享

微信扫一扫

CountdownView

Github地址

​​CountdownView项目Github地址​​

Gradle

compile 'com.github.iwgang:countdownview:2.1.3'

Layout

<cn.iwgang.countdownview.CountdownView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:isHideTimeBackground="true"
app:isShowDay="true"
app:isShowHour="true"
app:isShowMinute="true"
app:isShowSecond="true"
app:isShowMillisecond="true"
app:timeTextColor="#000000"
app:timeTextSize="22sp"
app:isTimeTextBold="true"
app:suffixGravity="bottom"
app:suffixTextColor="#000000"
app:suffixTextSize="12sp"
app:suffixHour="时"
app:suffixMinute="分"
app:suffixSecond="秒"
app:suffixMillisecond="毫秒" />

Customization

attr

type

default

isHideTimeBackground(隐藏倒计时背景)

boolean

true

timeBgColor(倒计时的背景色)

color

#444444

timeBgSize(倒计时背景大小)

dimension

timeSize + 2dp * 4

timeBgRadius(倒计时背景的圆角)

dimension

0

isShowTimeBgDivisionLine(倒计时的横向的分割线)

boolean

true

timeBgDivisionLineColor(倒计时的横向的分割线颜色)

color

#30FFFFFF

timeBgDivisionLineSize(倒计时的横向的分割线高度)

dimension

0.5dp

timeTextSize(倒计时的文字大小)

dimension

12sp

timeTextColor(倒计时的文字颜色)

color

#000000

isTimeTextBold(倒计时文字所在的边框)

boolean

false

isShowDay(自动显示 (天 > 1 显示, = 0 隐藏))

boolean

auto show (has value show if not hide)

isShowHour(自动显示 (小时 > 1 显示, = 0 隐藏))

boolean

auto show (has value show if not hide)

isShowMinute(是否显示分钟)

boolean

true

isShowSecond(是否显示秒)

boolean

true

isShowMillisecond( 是否显示毫秒)

boolean

false

isConvertDaysToHours(是否转换天为小时)

boolean

false

suffixTextSize(添加的分号:的大小)

dimension

12sp

suffixTextColor(添加的分号:的颜色)

color

#000000

isSuffixTextBold(添加的分号:的边框)

boolean

false

suffixGravity(添加的分号:对齐方式)

‘top’ or ‘center’ or ‘bottom’

‘center’

suffix(添加的分号:默认值)

string

‘:’

suffixDay(天默认值)

string

null

suffixHour(时默认值)

string

null

suffixMinute(分默认值)

string

null

suffixSecond(秒默认值)

string

null

suffixMillisecond(毫秒默认值)

string

null

suffixLRMargin

dimension

left 3dp right 3dp

suffixDayLeftMargin

dimension

0

suffixDayRightMargin

dimension

0

suffixHourLeftMargin

dimension

0

suffixHourRightMargin

dimension

0

suffixMinuteLeftMargin

dimension

0

suffixMinuteRightMargin

dimension

0

suffixSecondLeftMargin

dimension

0

suffixSecondRightMargin

dimension

0

suffixMillisecondLeftMargin

dimension

0

isShowTimeBgBorder

boolean

false

timeBgBorderColor

color

#000000

timeBgBorderSize

dimension

1dp

timeBgBorderRadius

dimension

0

代码调用

CountdownView mCvCountdownView = (CountdownView)findViewById(R.id.cv_countdownViewTest1);
//倒计时开始传毫秒
mCvCountdownView.start(995550000);

/**或者自己编写倒计时逻辑,然后调用updateShow来更新UI*/
for (int time=0; time<1000; time++) {
mCvCountdownView.updateShow(time);
}

给控件添加Tag回调实例

当使用ListView 或者RecycleView等控件使用倒计时,会出现一个界面有多个倒计时,但它的回调函数在Activity、Fragment里面只有一个,这时我们可以选择添加Tag标签,回调函数onEnd里判断Tag值匹配执行响应函数,个人觉得在Adapter里面使用有个更好的方法,onEnd(CountdownView ,position)把position回调回来就简单多了,这里不细说,先看给控件添加Tag回调实例

// 第1步,设置tag
mCvCountdownView.setTag(R.id.name, uid);
// 第2步,从设置的CountdownView中取回tag
@Override
public void onEnd(CountdownView cv) {
Object nameTag = cv.getTag(R.id.uid);
if (null != nameTag) {
Log.i(TAG, "name = " + nameTag.toString());
}
}

动态展示

动态显示/隐藏某些时间 (如:开始显示时、分、秒,后面到指定时间改成分、秒、毫秒)

customTimeShow(boolean isShowDay, 
boolean isShowHour,
boolean isShowMinute,
boolean isShowSecond,
boolean isShowMillisecond)

动态显示设置, 支持所有xml中的配置项来使用java代码设置

dynamicShow(DynamicConfig dynamicConfig)

倒计时结束后回调

setOnCountdownEndListener(OnCountdownEndListener onCountdownEndListener);

指定间隔时间回调

setOnCountdownIntervalListener(long interval, OnCountdownIntervalListener onCountdownIntervalListener);


举报
0 条评论