亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

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

代碼見(jià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='跳過(guò)' 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'/> <!-- 掃過(guò)完成的顏色 --> <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)開(kāi)始 默認(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>

文字部分沒(méi)有提供更多的自定義屬性,可以通過(guò) setTextDrawer()對(duì)畫(huà)筆和文字進(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 '跳過(guò)'; } return String.format('%ss', leftTime == 0 ? leftTime : leftTime / 1000 + 1); }});

監(jiān)聽(tīng)

countDownView.setCountDownListener(new CountDownView.CountDownListener() { @Override public void onTick(long leftTime, float finishedAngle) { // leftTime: 剩余時(shí)間, finishedAngle: 掃過(guò)的角度 } @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)文章:
主站蜘蛛池模板: 国产成人91高清精品免费 | 国产精品亚洲一区二区三区在线播放 | 国产欧美日韩不卡一区二区三区 | 在线观看国产精品入口 | 2021中国大陆精品视频xxxx | 中文字幕久久综合伊人 | 久久香蕉国产线看观看网站 | 成人夜色视频在线观看网站 | 国产精品视频久久 | 国产成人精品1沈娜娜 | 麻豆网址在线观看 | 国产精品爱久久久久久久小 | 亚洲精品第一综合99久久 | 国产ssss在线观看极品 | 一道本一区二区三区 | 色图视频 | 欧美日韩第二页 | 国产在线视频欧美亚综合 | 久久久网站亚洲第一 | 永久免费看www色视频 | 亚洲精品久久婷婷爱久久婷婷 | 国产精品自拍在线观看 | julia一区福利视频在线观看 | 看成年全黄大色黄大片 | 亚洲日本乱码中文在线电影亚洲 | 欧美中文综合在线视频 | 国产真实乱人视频在线看 | 久久精品亚洲热综合一本奇米 | 91久久亚洲最新一本 | 成人在线观看免费爱爱 | 九九久久国产精品免费热6 九九天天影视 | 91精品在线免费观看 | 亚洲 欧美 自拍 另类 欧美 | 一区二区日韩欧美 | 国产91臀交在线播放 | 亚洲免费看片 | 国产高清不卡一区二区三区 | 欧美特黄a级高清免费大片 欧美特黄a级高清免费看片 | 成人看片黄a在线观看 | 欧美日韩专区国产精品 | 欧美 日韩 国产 成人 在线观看 |