Kotlin實(shí)現(xiàn)半圓形進(jìn)度條的方法示例
Kotlin的簡(jiǎn)要介紹
在開(kāi)發(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 非常適合開(kāi)發(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 寫(xiě)的代碼運(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ì)有額外的開(kāi)銷,增量構(gòu)建通常與 Java 一樣快或者更快。
- 學(xué)習(xí)曲線:對(duì)于 Java 開(kāi)發(fā)人員,Kotlin 入門(mén)很容易。包含在 Kotlin 插件中的自動(dòng) Java 到 Kotlin 的轉(zhuǎn)換器 有助于邁出第一步。Kotlin 心印 通過(guò)一系列互動(dòng)練習(xí)提供了語(yǔ)言主要功能的指南。
使用Kotlin編寫(xiě)的半圓形的進(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
//覆寫(xiě)此方法以實(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原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖
折線圖是Android開(kāi)發(fā)中經(jīng)常會(huì)碰到的效果,但由于涉及自定義View的知識(shí),對(duì)許多剛?cè)腴T(mén)的小白來(lái)說(shuō)會(huì)覺(jué)得很高深,下面這篇文章主要給大家介紹了關(guān)于如何使用Android原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖的相關(guān)資料,需要的朋友可以參考下2022-05-05Android實(shí)現(xiàn)觸發(fā)html頁(yè)面的Button控件點(diǎn)擊事件方式
這篇文章主要介紹了Android實(shí)現(xiàn)觸發(fā)html頁(yè)面的Button控件點(diǎn)擊事件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03android開(kāi)發(fā)socket編程之udp發(fā)送實(shí)例分析
這篇文章主要介紹了android開(kāi)發(fā)socket編程之udp發(fā)送,實(shí)例分析了Android開(kāi)發(fā)socket網(wǎng)絡(luò)編程中udp發(fā)送的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04Android倒計(jì)時(shí)功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android倒計(jì)時(shí)功能的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12viewPager+fragment刷新緩存fragment的方法
這篇文章主要介紹了viewPager+fragment刷新緩存fragment的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Android 沉浸式改變小米魅族狀態(tài)欄顏色的實(shí)例代碼
這篇文章主要介紹了Android 沉浸式改變小米魅族狀態(tài)欄顏色的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02