欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android自定義組件實現(xiàn)儀表計數(shù)盤

 更新時間:2019年11月27日 17:13:28   作者:博客_黃大大  
這篇文章主要為大家詳細介紹了android自定義組件實現(xiàn)儀表計數(shù)盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前幾天開發(fā)公司項目,有個地方要做一個分數(shù)的儀表盤,根據(jù)分數(shù)跑分,(設(shè)計的人估計是看到招商銀行App的賬號總覽)

網(wǎng)上好像找不到類似的組件,那就只能自己開發(fā)啦。趁著空余時間,把組件進行了一些改進,并封裝成依賴庫,分享給大家

效果展示

一款顏色,文字弧度大小,儀表角度都可以自定義的組件

項目集成:MeterView

項目目錄——>build.gradle

allprojects {
 
 repositories {
 
 ...
 
 maven { url 'https://jitpack.io' }
 
 }
 
}

app——>build.gradle

dependencies { 
  ... 
  implementation 'com.github.pimaryschoolstudent:MeterView:1.0.1'
  
}

組件使用

//添加數(shù)據(jù)
 var arrayList:ArrayList<String> = ArrayList()
 arrayList.add("0")
 arrayList.add("10")
 arrayList.add("20")
 arrayList.add("30")
 arrayList.add("40")
 arrayList.add("50")
 arrayList.add("較差")
 arrayList.add("中等")
 arrayList.add("良好")
 arrayList.add("優(yōu)秀")
 arrayList.add("100")
 meter.setScaleArray(arrayList)
 
 //設(shè)置數(shù)據(jù)
 //顏色
 meter.getDataManager().ScaleTextColor = Color.BLUE  //底盤弧刻度文字顏色
 meter.getDataManager().DashBoardColor = Color.BLUE  //底盤弧度顏色
 meter.getDataManager().PointColor = Color.RED   //分數(shù)點顏色
 meter.getDataManager().SourceTextColor = Color.RED  //分數(shù)顏色
 meter.getDataManager().SourceCurveColor = Color.RED  //分數(shù)弧顏色
 meter.getDataManager().CheckScaleTextColor = Color.BLACK //選中分數(shù)刻度顏色
 
 //大小 dp2px(dp轉(zhuǎn)px) px2dp(px轉(zhuǎn)dp)
 meter.getDataManager().CheckScaleTextSize = meter.dp2Px(15f) //選中分數(shù)刻度文字大小
 meter.getDataManager().ScaleTextSize = meter.dp2Px(10f)  //刻度文字大小
 meter.getDataManager().SourceTextSize = meter.dp2Px(40f)  //分數(shù)文字大小
 
 meter.getDataManager().PointSize = meter.dp2Px(5f)    //分數(shù)點半徑大小
 meter.getDataManager().SourceCurveSize = meter.dp2Px(10f)  //分數(shù)弧寬度大小
 meter.getDataManager().BoardCurveSize = meter.dp2Px(5f)  //底盤弧寬度大小
 
 meter.getDataManager().SourceTextInterval = meter.dp2Px(20.5f) //分數(shù)離頂部的間隔大小
 
 //其他設(shè)置
 meter.getDataManager().Rate = 30 //分數(shù)弧動畫速率(30/s)
 
 meter.getDataManager().ShowSource = true //是否顯示分數(shù)
 
 meter.getDataManager().SourceTextAlign = MeterView.SOURCE_CENTER //分數(shù)居中方式 SOURCE_CENTER(底盤居中) OURCE_START(底盤頂部) SOURCE_END (底盤底部)
 
//meter.getDataManager().startAngle = -180f //底盤弧開始點的角度(起點為組件最右邊點,當?shù)扔?90時為組件中點)
//meter.getDataManager().sweepAngle = 180f //底盤弧角度大小
 
 meter.getDataManager().sourceShowType = MeterView.SOURCE_NUMBER //顯示的分數(shù)類型 SOURCE_NUMBER:數(shù)字(百分制) SOURCE_SCALETEXT:刻度文字
 meter.getDataManager().meterDebug = false //打開底部矩形,方便調(diào)試和添加其他元素
 
 //跑分
 tv.text = "runSource(45)......"
 meter.runSource(45) //根據(jù)分數(shù)跑分(百分制,大于100則等于100)
//meter.runIndex(5) //根據(jù)數(shù)據(jù)索引跑分 (不為-1,不大于數(shù)據(jù)大小)
//meter.addIndex(2) //在當前基礎(chǔ)上增加兩個索引的分數(shù)
//meter.subtractIndex(1) //在當前基礎(chǔ)上減少一個索引的分數(shù)
//meter.addSource(20)//在當前基礎(chǔ)上增加20分
//meter.subtractSource(20)//在當前基礎(chǔ)上減少20分
 thread {   //支持異步線程直接調(diào)用
  Thread.sleep(4000)
  meter.addIndex(3)
  runOnUiThread(Runnable { tv.text = "addIndex(3)......" })
  Thread.sleep(4000)
  meter.subtractIndex(1)
  runOnUiThread(Runnable { tv.text = "subtractIndex(1)......" })
  Thread.sleep(4000)
  meter.addSource(20)
  runOnUiThread(Runnable { tv.text = "addSource(20)......" })
  Thread.sleep(4000)
  meter.subtractSource(20)
  runOnUiThread(Runnable { tv.text = "subtractSource(20)......" })
  Thread.sleep(4000)
  meter.runIndex(10)
  runOnUiThread(Runnable { tv.text = "runIndex(10)......" })
 }
 //分數(shù)改變監(jiān)聽器
 meter.setSourceChangeListener(object :MeterView.SourceChangeListener{
  override fun CheckScaleTextChange(currentText: String) { //選中刻度文字改變
   Log.e("currentScaleText"," currentScaleText $currentText")
  }
 
  override fun SourceChange(source: Int,currentScaleText:String) {  //分數(shù)改變
   Log.e("meter","source $source currentScaleText $currentScaleText")
  }
 })

xml屬性

app:DashBoardColor="#1C65CE" //底盤弧度顏色
app:ScaleTextColor="#888585" //底盤弧刻度文字顏色
app:SourceCurveColor="#09C0E5" //分數(shù)弧顏色
app:CheckScaleTextColor="#000" //選中分數(shù)刻度顏色
app:PointColor="#09C0E5" //分數(shù)點顏色
app:SourceTextColor="#000" //分數(shù)顏色
 
app:CheckScaleTextSize="18dp" //選中分數(shù)刻度文字大小
app:SourceTextSize="30dp" //分數(shù)文字大小
app:ScaleTextSize="14dp" //刻度文字大小
 
app:BoardCurveSize="2dp" //底盤弧寬度大小
app:SourceCurveSize="10dp" //分數(shù)弧寬度大小
app:PointSize="8dp" //分數(shù)點半徑大小
 
app:ScaleTextInterval="0dp" //刻度離頂部的間隔大小
app:SourceTextInterval="0dp" //分數(shù)離頂部的間隔大小
  
app:SourceTextAlign="start" //分數(shù)居中方式 center(底盤居中)start(底盤頂部)end (底盤底部)
app:SourceShowType="number" //顯示的分數(shù)類型 number:數(shù)字(百分制) scaleText:刻度文字
  
app:Rate="20" //分數(shù)弧動畫速率(20/s)
 
app:StartAnglee="-180" //底盤弧開始點的角度(起點為組件最右邊點,當?shù)扔?90時為組件中點)
app:SweepAnglee="320" //底盤弧角度大小
 
app:ShowSource="true" //是否顯示分數(shù),同下
app:ShowScaleText="true"
app:ShowCheckScaleText="true"
app:ShowPoint="true"
app:ShowSourceCurve="true"

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android okhttp的啟動流程及源碼解析

    Android okhttp的啟動流程及源碼解析

    這篇文章主要介紹了Android okhttp的啟動流程及源碼解析,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-03-03
  • Flutter添加頁面過渡動畫實現(xiàn)步驟

    Flutter添加頁面過渡動畫實現(xiàn)步驟

    這篇文章主要為大家介紹了Flutter添加頁面過渡動畫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Android簡單實現(xiàn)自定義流式布局的方法

    Android簡單實現(xiàn)自定義流式布局的方法

    這篇文章主要介紹了Android簡單實現(xiàn)自定義流式布局的方法,結(jié)合實例形式分析了Android流式布局的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2016-07-07
  • Android手機聯(lián)系人帶字母索引的快速查找

    Android手機聯(lián)系人帶字母索引的快速查找

    這篇文章主要為大家詳細介紹了Android手機聯(lián)系人帶字母索引的快速查找實現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android自定義scrollview實現(xiàn)回彈效果

    Android自定義scrollview實現(xiàn)回彈效果

    這篇文章主要為大家詳細介紹了Android自定義scrollview實現(xiàn)回彈效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android開發(fā)利器之pidcat安裝方式

    Android開發(fā)利器之pidcat安裝方式

    pidcat 是Android屆JakeWharton大神開發(fā)的一款命令行工具,堪稱Android開發(fā)利器,它能方便Android程序猿捕獲日志,過濾日志,定位程序問題,超級好用。這篇文章給大家介紹了Android開發(fā)利器之pidcat,需要的朋友可以參考下
    2019-05-05
  • Android 加載asset文件夾下邊的圖片

    Android 加載asset文件夾下邊的圖片

    這篇文章主要介紹了Android 加載asset文件夾下邊的圖片,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • Android通過bin二進制程序調(diào)用jar原理

    Android通過bin二進制程序調(diào)用jar原理

    最近在研究monkey測試,發(fā)現(xiàn)monkey測試的代碼都是JAVA編寫的,通過編譯生成jar包,而我們在執(zhí)行測試時直接執(zhí)行/system/bin/monkey這個二進制程序的,那么它是如何能調(diào)起java程序的呢,本文小編給大家介紹了Android通過bin二進制程序調(diào)用jar原理,需要的朋友可以參考下
    2023-10-10
  • Android  ActionBarActivity設(shè)置全屏無標題實現(xiàn)方法總結(jié)

    Android ActionBarActivity設(shè)置全屏無標題實現(xiàn)方法總結(jié)

    這篇文章主要介紹了Android ActionBarActivity設(shè)置全屏無標題實現(xiàn)方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • android仿微信好友列表功能

    android仿微信好友列表功能

    這篇文章主要介紹了android仿微信好友列表功能,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2018-04-04

最新評論