久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Android 倒計(jì)時(shí)控件 CountDownView的實(shí)例代碼詳解

瀏覽:36日期:2022-09-23 17:54:47

一個(gè)精簡可自定義的倒計(jì)時(shí)控件,使用 Canvas.drawArc() 繪制。實(shí)現(xiàn)了應(yīng)用開屏頁的圓環(huán)掃過的進(jìn)度條效果。

代碼見https://github.com/hanjx-dut/CountDownView

使用

allprojects { repositories { ... maven { url ’https://jitpack.io’ } }}dependencies { implementation ’com.github.hanjx-dut:CountDownView:1.1’}

實(shí)現(xiàn)的效果

效果圖

Android 倒計(jì)時(shí)控件 CountDownView的實(shí)例代碼詳解

對(duì)應(yīng)的view:

<com.hanjx.ui.CountDownView android: 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'/> <com.hanjx.ui.CountDownView android: 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'/> <com.hanjx.ui.CountDownView android: 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'/> <com.hanjx.ui.CountDownView android: 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'/> <com.hanjx.ui.CountDownView android: 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'/>

全部屬性:

<declare-styleable name='CountDownView'> <attr name='duration' format='integer'/> <!-- 總時(shí)間 --> <attr name='refresh_interval'> <!-- 刷新間隔 ms --> <enum name='normal' value='16'/> <enum name='quick' value='11'/> <enum name='slow' value='20'/> </attr> <attr name='paint_stroke' format='dimension'/> <!-- 圓環(huán)寬度 --> <attr name='finished_color' format='color'/> <!-- 掃過完成的顏色 --> <attr name='unfinished_color' format='color'/> <!-- 未完成的顏色 --> <attr name='start_angle' format='float'/> <!-- 起始角度 默認(rèn) -90 即頂部 --> <attr name='clockwise' format='boolean'/> <!-- 順時(shí)針 默認(rèn) true --> <attr name='auto_start' format='boolean'/> <!-- 自動(dòng)開始 默認(rèn) false --> <!-- 文字 --> <attr name='text' format='string'/> <!-- 設(shè)置文字 --> <attr name='text_mode'> <!-- 文字模式 固定 / 隨時(shí)間倒數(shù)(默認(rèn))--> <enum name='fixed' value='0'/> <enum name='time_variant' value='1'/> </attr> <attr name='text_size' format='dimension'/> <!-- 文字尺寸 --> <attr name='text_color' format='color'/> <!-- 文字顏色 --> </declare-styleable>

文字部分沒有提供更多的自定義屬性,可以通過 setTextDrawer()對(duì)畫筆和文字進(jìn)行自定義,如 demo 中的第五個(gè):

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); }});

監(jiān)聽

countDownView.setCountDownListener(new CountDownView.CountDownListener() { @Override public void onTick(long leftTime, float finishedAngle) { // leftTime: 剩余時(shí)間, finishedAngle: 掃過的角度 } @Override public void onStop(boolean reset) { // 主動(dòng)調(diào)用 countDownView.stop() 時(shí)會(huì)觸發(fā)此回調(diào) } @Override public void onFinished() { }});

ps:接口都有默認(rèn)實(shí)現(xiàn),可以選擇實(shí)現(xiàn)任意方法

總結(jié)

到此這篇關(guān)于Android 倒計(jì)時(shí)控件 CountDownView的實(shí)例代碼詳解的文章就介紹到這了,更多相關(guān)Android 倒計(jì)時(shí)控件 CountDownView內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 亚洲高清在线观看 | 99久久婷婷| 久久99国产精品 | 国内精品一级毛片国产99 | 久久久久久久久免费视频 | 99国产精品99久久久久久 | 日韩精品999 | 国产欧美日韩 | 亚洲国产精品久久久 | 日韩精品免费 | 成人不卡 | 午夜色福利 | 国产精品一区二区三 | 国产在线视频网站 | 一区二区三区四区精品 | 伊人91| 日日夜夜一区二区 | 精品国产91亚洲一区二区三区www | 日韩中文字幕一区 | 中文字幕在线观看 | 日韩在线一区二区 | 欧美日韩在线播放 | 亚洲一区综合 | 狠狠的日| 国产毛片a级 | 久久香蕉国产视频 | 亚洲一区二区av | 国产精品毛片一区二区在线看 | 日韩三级电影免费观看 | 日本成人在线视频网站 | 伊人网综合在线 | 中文字幕在线资源 | 亚洲欧美电影 | 精品国产一区二区三区av片 | 亚洲视频自拍 | 黄色片网站在线观看 | 国产精品久久久久久福利一牛影视 | 欧美日韩精品区 | 色综合中文 | 欧美a区| caoporn国产精品免费公开 |