安卓数字倒数控件_Android 倒计时控件 CountDownView的实例代码详解

一个精简可自定义的倒计时控件,使用 Canvas.drawArc() 绘制。实现了应用开屏页的圆环扫过的进度条效果。

使用

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

dependencies {

implementation 'com.github.hanjx-dut:CountDownView:1.1'

}

实现的效果

效果图

对应的view:

android:id="@+id/count_down_1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

app:auto_start="true"

app:text_mode="time_variant"

app:duration="3000"

app:paint_stroke="3dp"/>

android:id="@+id/count_down_2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

app:finished_color="#000000"

app:auto_start="true"

app:start_angle="90"

app:text_mode="time_variant"

app:duration="3000"

app:paint_stroke="3dp"/>

android:id="@+id/count_down_3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

app:finished_color="#FF0000"

app:unfinished_color="#00FF00"

app:auto_start="true"

app:duration="2000"

app:refresh_interval="quick"

app:text="跳过"

app:text_size="12sp"

app:text_color="#FF0000"

app:text_mode="fixed"

app:paint_stroke="2dp"/>

android:id="@+id/count_down_4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

app:auto_start="true"

app:text_mode="fixed"

app:clockwise="false"

app:text=""

app:duration="2000"

app:paint_stroke="3dp"/>

android:id="@+id/count_down_5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

app:text_mode="time_variant"

app:duration="5000"

app:paint_stroke="1.5dp"/>

全部属性:

文字部分没有提供更多的自定义属性,可以通过 setTextDrawer()对画笔和文字进行自定义,如 demo 中的第五个:

CountDownView countDownView = findViewById(R.id.count_down_5);

countDownView.setTextDrawer(new CountDownView.TextDrawer() {

@Override

public void setTextPaint(Paint paint, long leftTime, int textMode) {

if (leftTime < 2000) {

paint.setTextSize(SizeUtils.sp2px(12));

}

paint.setTypeface(Typeface.DEFAULT_BOLD);

paint.setColor(0xFFFF802E);

}

@Override

public String getText(long leftTime, int mode, String originText) {

if (leftTime < 2000) {

return "跳过";

}

return String.format("%ss", leftTime == 0 ? leftTime : leftTime / 1000 + 1);

}

});

监听

countDownView.setCountDownListener(new CountDownView.CountDownListener() {

@Override

public void onTick(long leftTime, float finishedAngle) {

// leftTime: 剩余时间, finishedAngle: 扫过的角度

}

@Override

public void onStop(boolean reset) {

// 主动调用 countDownView.stop() 时会触发此回调

}

@Override

public void onFinished() {

}

});

ps:接口都有默认实现,可以选择实现任意方法

总结

到此这篇关于Android 倒计时控件 CountDownView的实例代码详解的文章就介绍到这了,更多相关Android 倒计时控件 CountDownView内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值