android自定义组件实现仪表计数盘

android自定义组件实现仪表计数盘,第1张

概述android自定义组件实现仪表计数盘 前几天开发公司项目,有个地方要做一个分数的仪表盘,根据分数跑分,(设计的人估计是看到招商银行App的账号总览) 网上好像找不到类似的组件,那就只能自己开发啦.趁着空余时间,把组件进行了一些改进,并封装成依赖库,分享给大家 效果展示 一款颜色,文字弧度大小,仪表角度都可以自定义的组件 项目集成:MeterView 项目目录-->build.gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } ...

前几天开发公司项目,有个地方要做一个分数的仪表盘,根据分数跑分,(设计的人估计是看到招商银行App的账号总览)

网上好像找不到类似的组件,那就只能自己开发啦。趁着空余时间,把组件进行了一些改进,并封装成依赖库,分享给大家

效果展示

一款颜色,文字弧度大小,仪表角度都可以自定义的组件






项目集成:MeterView

项目目录——>build.gradle

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

app——>build.gradle

dependencIEs {  ...  implementation 'com.github.pimaryschoolstudent:MeterVIEw:1.0.1'}

组件使用

//添加数据 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("优秀") arrayList.add("100") meter.setScaleArray(arrayList) //设置数据 //颜色 meter.getDataManager().ScaleTextcolor = color.BLUE  //底盘弧刻度文字颜色 meter.getDataManager().DashBoardcolor = color.BLUE  //底盘弧度颜色 meter.getDataManager().Pointcolor = color.RED   //分数点颜色 meter.getDataManager().sourceTextcolor = color.RED  //分数颜色 meter.getDataManager().sourceCurvecolor = color.RED  //分数弧颜色 meter.getDataManager().CheckScaleTextcolor = color.BLACK //选中分数刻度颜色 //大小 dp2px(dp转px) px2dp(px转dp) meter.getDataManager().CheckScaleTextSize = meter.dp2Px(15f) //选中分数刻度文字大小 meter.getDataManager().ScaleTextSize = meter.dp2Px(10f)  //刻度文字大小 meter.getDataManager().sourceTextSize = meter.dp2Px(40f)  //分数文字大小 meter.getDataManager().PointSize = meter.dp2Px(5f)    //分数点半径大小 meter.getDataManager().sourceCurveSize = meter.dp2Px(10f)  //分数弧宽度大小 meter.getDataManager().BoardCurveSize = meter.dp2Px(5f)  //底盘弧宽度大小 meter.getDataManager().sourceTextInterval = meter.dp2Px(20.5f) //分数离顶部的间隔大小 //其他设置 meter.getDataManager().Rate = 30 //分数弧动画速率(30/s) meter.getDataManager().ShowSource = true //是否显示分数 meter.getDataManager().sourceTextAlign = MeterVIEw.soURCE_CENTER //分数居中方式 SOURCE_CENTER(底盘居中) OURCE_START(底盘顶部) SOURCE_END (底盘底部)//meter.getDataManager().startAngle = -180f //底盘弧开始点的角度(起点为组件最右边点,当等于-90时为组件中点)//meter.getDataManager().sweepAngle = 180f //底盘弧角度大小 meter.getDataManager().sourceShowType = MeterVIEw.soURCE_NUMBER //显示的分数类型 SOURCE_NUMBER:数字(百分制) SOURCE_SCALETEXT:刻度文字 meter.getDataManager().meterDeBUG = false //打开底部矩形,方便调试和添加其他元素 //跑分 tv.text = "runSource(45)......" meter.runSource(45) //根据分数跑分(百分制,大于100则等于100)//meter.runIndex(5) //根据数据索引跑分 (不为-1,不大于数据大小)//meter.addindex(2) //在当前基础上增加两个索引的分数//meter.subtractIndex(1) //在当前基础上减少一个索引的分数//meter.addSource(20)//在当前基础上增加20分//meter.subtractSource(20)//在当前基础上减少20分 thread {   //支持异步线程直接调用  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)......" }) } //分数改变监听器 meter.setSourcechangelistener(object :MeterVIEw.sourcechangelistener{  overrIDe fun CheckScaleTextChange(currentText: String) { //选中刻度文字改变   Log.e("currentScaleText"," currentScaleText $currentText")  }  overrIDe fun SourceChange(source: Int,currentScaleText:String) {  //分数改变   Log.e("meter","source $source currentScaleText $currentScaleText")  } })

xml属性

app:DashBoardcolor="#1C65CE" //底盘弧度颜色app:ScaleTextcolor="#888585" //底盘弧刻度文字颜色app:SourceCurvecolor="#09C0E5" //分数弧颜色app:CheckScaleTextcolor="#000" //选中分数刻度颜色app:Pointcolor="#09C0E5" //分数点颜色app:SourceTextcolor="#000" //分数颜色app:CheckScaleTextSize="18dp" //选中分数刻度文字大小app:SourceTextSize="30dp" //分数文字大小app:ScaleTextSize="14dp" //刻度文字大小app:BoardCurveSize="2dp" //底盘弧宽度大小app:SourceCurveSize="10dp" //分数弧宽度大小app:PointSize="8dp" //分数点半径大小app:ScaleTextInterval="0dp" //刻度离顶部的间隔大小app:SourceTextInterval="0dp" //分数离顶部的间隔大小app:SourceTextAlign="start" //分数居中方式 center(底盘居中)start(底盘顶部)end (底盘底部)app:SourceShowType="number" //显示的分数类型 number:数字(百分制) scaleText:刻度文字app:Rate="20" //分数弧动画速率(20/s)app:StartAnglee="-180" //底盘弧开始点的角度(起点为组件最右边点,当等于-90时为组件中点)app:SweepAnglee="320" //底盘弧角度大小app:ShowSource="true" //是否显示分数,同下app:ShowScaleText="true"app:ShowCheckScaleText="true"app:ShowPoint="true"app:ShowSourceCurve="true"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

总结

以上是内存溢出为你收集整理的android自定义组件实现仪表计数盘全部内容,希望文章能够帮你解决android自定义组件实现仪表计数盘所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1144289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存