一個精簡可自定義的倒計時控件,使用 Canvas.drawArc() 繪製。實現了應用開屏頁的圓環掃過的進度條效果。
代碼見https://github.com/hanjx-dut/CountDownView
使用
allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.github.hanjx-dut:CountDownView:1.1' }
實現的效果
效果圖
對應的view:
全部屬性:
文字部分沒有提供更多的自定義屬性,可以通過 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:接口都有默認實現,可以選擇實現任意方法
[kyec555 ] Android 倒計時控件 CountDownView的實例代碼詳解已經有378次圍觀