Kotlin實(shí)現(xiàn)半圓形進(jìn)度條的方法示例
Kotlin的簡(jiǎn)要介紹
在開發(fā)之前,很多同學(xué)一定有很多疑問(wèn),Kotlin到底有啥好處,怎么和現(xiàn)有的項(xiàng)目共存呢?Java那么些特性Kotlin都有嗎?嗯,讓我們一一來(lái)看。
以下內(nèi)容摘自:Kotlin的官方網(wǎng)站:https://www.kotlincn.net/docs/reference/android-overview.html
Kotlin 非常適合開發(fā) Android 應(yīng)用程序,將現(xiàn)代語(yǔ)言的所有優(yōu)勢(shì)帶入 Android 平臺(tái)而不會(huì)引入任何新的限制:
- 兼容性:Kotlin 與 JDK 6 完全兼容,保障了 Kotlin 應(yīng)用程序可以在較舊的 Android 設(shè)備上運(yùn)行而無(wú)任何問(wèn)題。Kotlin 工具在 Android Studio 中會(huì)完全支持,并且兼容 Android 構(gòu)建系統(tǒng)。
- 性能:由于非常相似的字節(jié)碼結(jié)構(gòu),Kotlin 應(yīng)用程序的運(yùn)行速度與 Java 類似。 隨著 Kotlin 對(duì)內(nèi)聯(lián)函數(shù)的支持,使用 lambda 表達(dá)式的代碼通常比用 Java 寫的代碼運(yùn)行得更快。
- 互操作性:Kotlin 可與 Java 進(jìn)行 100% 的互操作,允許在 Kotlin 應(yīng)用程序中使用所有現(xiàn)有的 Android 庫(kù) 。這包括注解處理,所以數(shù)據(jù)綁定和 Dagger 也是一樣。
- 占用:Kotlin 具有非常緊湊的運(yùn)行時(shí)庫(kù),可以通過(guò)使用 ProGuard 進(jìn)一步減少。 在實(shí)際應(yīng)用程序中,Kotlin 運(yùn)行時(shí) 只增加幾百個(gè)方法以及 .apk 文件不到 100K 大小。
- 編譯時(shí)長(zhǎng):Kotlin 支持高效的增量編譯,所以對(duì)于 清理構(gòu)建會(huì)有額外的開銷,增量構(gòu)建通常與 Java 一樣快或者更快。
- 學(xué)習(xí)曲線:對(duì)于 Java 開發(fā)人員,Kotlin 入門很容易。包含在 Kotlin 插件中的自動(dòng) Java 到 Kotlin 的轉(zhuǎn)換器 有助于邁出第一步。Kotlin 心印 通過(guò)一系列互動(dòng)練習(xí)提供了語(yǔ)言主要功能的指南。
使用Kotlin編寫的半圓形的進(jìn)度條,效果如下

方法如下
導(dǎo)入依賴
compile 'com.blackflagbin:semicircleprogressview:0.0.3'
在布局文件中
<!--angle 每條短線之間間隔角度--> <!--progress 進(jìn)度--> <!--showProgressText 是否顯示進(jìn)度文字--> <!--strokeWidth 每條短線的寬度(粗細(xì))--> <com.blackflagbin.semicircleprogressview.SemiCircleProgressView android:id="@+id/progress" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" app:angle="3" app:progress="13" app:showProgressText="true" app:strokeWidth="3"/>
在代碼中
//設(shè)置進(jìn)度 progress.setProgress(3f) //獲取進(jìn)度 val progress = progress.getProgress() //更新進(jìn)度 progress.updateProgress(75f)
如果想要自定義進(jìn)度文字實(shí)現(xiàn)gif演示圖中第二個(gè)進(jìn)度條中的類似的文字效果,可以參考庫(kù)中的MySemiCircleProgressView
//覆寫此方法以實(shí)現(xiàn)自定義進(jìn)度文字,height代表控件的高度 drawProgressText(canvas: Canvas,height:Float)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Android SQLite3多線程操作問(wèn)題研究總結(jié)
這篇文章主要介紹了Android SQLite3多線程操作問(wèn)題研究總結(jié),本文總結(jié)了SQLite3是否支持多線程、SQLiteDatabase的同步鎖、多線程讀數(shù)據(jù)庫(kù)等問(wèn)題,需要的朋友可以參考下2015-03-03
Android App在ViewPager中使用Fragment的實(shí)例講解
這篇文章主要介紹了Android App在ViewPager中使用Fragment的實(shí)例講解,ViewPager組件主要被用來(lái)制作滑動(dòng)切換效果,需要的朋友可以參考下2016-03-03
Android編程實(shí)現(xiàn)屏幕禁止休眠的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)屏幕禁止休眠的方法,分析了Android的Manifest.xml設(shè)置與代碼實(shí)現(xiàn)兩種操作技巧,需要的朋友可以參考下2016-10-10
Android動(dòng)畫之逐幀動(dòng)畫(Frame Animation)實(shí)例詳解
這篇文章主要介紹了Android動(dòng)畫之逐幀動(dòng)畫(Frame Animation),結(jié)合實(shí)例形式較為詳細(xì)的分析了逐幀動(dòng)畫的原理,注意事項(xiàng)與相關(guān)使用技巧,需要的朋友可以參考下2016-01-01
Android10開發(fā)者常見問(wèn)題(小結(jié))
這篇文章主要介紹了Android10開發(fā)者常見問(wèn)題(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法
這篇文章主要介紹了Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法,結(jié)合實(shí)例形式分析了Android針對(duì)橫豎屏的判斷、計(jì)算、設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Android使用httpPost向服務(wù)器發(fā)送請(qǐng)求的方法
這篇文章主要介紹了Android使用httpPost向服務(wù)器發(fā)送請(qǐng)求的方法,實(shí)例分析了Android針對(duì)HttpPost類的操作技巧,需要的朋友可以參考下2015-12-12
appium運(yùn)行各種坑爹報(bào)錯(cuò)問(wèn)題及解決方法【推薦】
這篇文章主要介紹了 appium運(yùn)行各種坑爹報(bào)錯(cuò)問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06

