一种安卓端圆形进度条动态展示方法、装置及计算机设备制造方法及图纸

技术编号:36707104 阅读:21 留言:0更新日期:2023-03-01 09:30
本发明专利技术公开了一种安卓端圆形进度条动态展示方法、装置及计算机设备,涉及安卓开发应用技术领域。所述方法是在初始化圆形进度条的内圆样式和外圆样式后,先绘制得到所述圆形进度条的内外圆视图,并当用户设置或更新进度条实际值时,调用安卓端属性动画方式,在预设的动画时长内从最小区间值开始从小至大地逐步返回位于动画执行参数值区间内的各个区间值,并在每返回一个区间值后,先基于该区间值更新计算所述外圆旋转终点角度,然后根据所述外圆旋转终点角度的更新计算结果,调用安卓端持续绘制方式重新绘制所述外圆视图,得到动态展示的安卓端圆形进度条,如此可以根据当前进度动态地实现圆形进度条文案提示,满足动态可视化的需求。的需求。的需求。

【技术实现步骤摘要】
一种安卓端圆形进度条动态展示方法、装置及计算机设备


[0001]本专利技术属于安卓开发应用
,具体涉及一种安卓端圆形进度条动态展示方法、装置及计算机设备。

技术介绍

[0002]在常规的安卓Android开发应用中,常常会遇到需要使用进度条效果的业务场景,一般情况下,都会使用Android原生自带的进度条效果,但是原生的进度条效果并不能满足动态可视化的需求,因此如何根据当前进度动态地实现圆形进度条文案提示,是本领域技术人员亟需研究的课题。

技术实现思路

[0003]本专利技术的目的是提供一种安卓端圆形进度条动态展示方法、装置、计算机设备及计算机可读存储介质,用以解决现有Android原生自带的进度条效果并不能满足动态可视化需求的问题。
[0004]为了实现上述目的,本专利技术采用以下技术方案:
[0005]第一方面,提供了一种安卓端圆形进度条动态展示方法,包括:
[0006]初始化圆形进度条的内圆样式和外圆样式;
[0007]获取用户设置的进度条高度和进度条宽度,并根据所述进度条高度和所述进度条宽度确定所述圆形进度条的且数值相等的宽度和高度;
[0008]根据所述内圆样式的画笔粗细属性以及所述圆形进度条的宽度和高度,调用安卓端构造函数RectF(),新建得到绘制内圆所需的第一矩形RectF类对象,以及根据所述外圆样式的画笔粗细属性以及所述圆形进度条的宽度和高度,调用所述安卓端构造函数RectF(),新建得到绘制外圆所需的第二矩形RectF类对象;
[0009]根据所述第一矩形RectF类对象、预设的内圆旋转起点角度、预设的内圆旋转终点角度和所述内圆样式,调用安卓端画弧线函数drawArc(),绘制得到所述圆形进度条的内圆视图,以及根据所述第二矩形RectF类对象、预设的外圆旋转起点角度、基于进度条实际值计算而得的外圆旋转终点角度和所述外圆样式,调用所述画弧线函数drawArc(),还绘制得到所述圆形进度条的外圆视图;
[0010]当用户设置或更新所述进度条实际值时,调用安卓端属性动画方式ValueAnimator,在预设的动画时长内从最小区间值开始从小至大地逐步返回位于动画执行参数值区间内的各个区间值,并在每返回一个区间值后,先基于该区间值更新计算所述外圆旋转终点角度,然后根据所述外圆旋转终点角度的更新计算结果,调用安卓端持续绘制方式postInvalidate重新绘制所述外圆视图,得到动态展示的安卓端圆形进度条,其中,所述动画执行参数值区间在用户设置时为[0,mCP
set
]而在更新时为[mCP
bf
,mCP
af
],mCP
set
表示用户设置的进度条实际值,mCP
bf
表示更新前的进度条实际值,mCP
af
表示更新后的进度条实际值。
[0011]基于上述
技术实现思路
,提供了一种圆形进度条动态可视化方案,即在初始化圆形进度条的内圆样式和外圆样式后,先根据用户设置的进度条高度和进度条宽度确定所述圆形进度条的且数值相等的宽度和高度,然后根据内外圆样式的画笔粗细属性以及所述圆形进度条的宽度和高度,调用安卓端构造函数RectF(),新建得到绘制内外圆所需的矩形RectF类对象,再然后根据矩形RectF类对象、内外圆旋转起点角度及终点角度和内外圆样式,调用安卓端画弧线函数drawArc(),绘制得到所述圆形进度条的内外圆视图,最后当用户设置或更新进度条实际值时,调用安卓端属性动画方式ValueAnimator,在预设的动画时长内从最小区间值开始从小至大地逐步返回位于动画执行参数值区间内的各个区间值,并在每返回一个区间值后,先基于该区间值更新计算所述外圆旋转终点角度,然后根据所述外圆旋转终点角度的更新计算结果,调用安卓端持续绘制方式postInvalidate重新绘制所述外圆视图,得到动态展示的安卓端圆形进度条,如此可以根据当前进度动态地实现圆形进度条文案提示,满足动态可视化的需求。此外,还可以通过动态配置样式,让开发人员只需一键配置所需样式就能达到需求效果,不仅解决了进度条多样化的问题,同时也提高了开发效率,便于实际应用和推广。
[0012]在一个可能的设计中,所述方法还包括:
[0013]初始化所述圆形进度条的文字样式;
[0014]根据所述进度条实际值,还计算得到进度比例值;
[0015]调用安卓端构造函数Rect(),新建得到一个矩形Rect类对象;
[0016]根据所述进度比例值和所述矩形Rect类对象,调用安卓端文本矩形获取函数getTextBounds(),得到用于展示所述进度比例值的文本矩形框;
[0017]调用安卓端矩形框宽度获取函数width(),获取所述文本矩形框的宽度,以及调用安卓端矩形框高度获取函数height(),获取所述文本矩形框的高度;
[0018]根据所述文本矩形框的宽度和高度以及所述圆形进度条的宽度和高度,按照如下公式计算得到描述文字所需的文本起点坐标(TextX,TextY):
[0019][0020]式中,Width表示所述圆形进度条的宽度,Height表示所述圆形进度条的高度,TextWidth表示所述文本矩形框的宽度,TextHeight表示所述文本矩形框的高度;
[0021]根据所述进度比例值、所述文本起点坐标和所述文字样式,调用安卓端画文字函数drawText()绘制得到所述圆形进度条的文字视图。
[0022]在一个可能的设计中,在每返回一个区间值后,所述方法还包括:先基于该区间值更新计算所述进度比例值以及所述文本起点坐标,然后根据所述进度比例值以及所述文本起点坐标的更新计算结果,还调用所述安卓端持续绘制方式postInvalidate重新绘制所述文字视图。
[0023]在一个可能的设计中,初始化圆形进度条的内圆样式和外圆样式,包括:
[0024]判断用户是否配置了目标圆形样式的属性,其中,所述目标圆形样式是指圆形进度条的内圆样式或外圆样式;
[0025]若是,则调用安卓端画笔函数Paint(),新建一个画笔来作为所述目标圆形样式的画笔,并调用安卓端画笔颜色设置函数Paint.setColor()来获取用户为所述目标圆形样
式配置的画笔颜色属性,以及调用安卓端画笔粗细设置函数Paint.setStrokeWidth()来获取用户为所述目标圆形样式配置的画笔粗细属性。
[0026]在一个可能的设计中,获取用户设置的进度条高度和进度条宽度,并根据所述进度条高度和所述进度条宽度确定所述圆形进度条的且数值相等的宽度和高度,包括:
[0027]调用安卓端默认大小获取函数getDefaultSize()和安卓端建议最低高度获取函数getSuggestedMinimumHeight()来获取用户设置的进度条高度,以及调用所述安卓端默认大小获取函数getDefaultSize()和安卓端建议最低宽度获取函数getSuggest本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安卓端圆形进度条动态展示方法,其特征在于,包括:初始化圆形进度条的内圆样式和外圆样式;获取用户设置的进度条高度和进度条宽度,并根据所述进度条高度和所述进度条宽度确定所述圆形进度条的且数值相等的宽度和高度;根据所述内圆样式的画笔粗细属性以及所述圆形进度条的宽度和高度,调用安卓端构造函数RectF(),新建得到绘制内圆所需的第一矩形RectF类对象,以及根据所述外圆样式的画笔粗细属性以及所述圆形进度条的宽度和高度,调用所述安卓端构造函数RectF(),新建得到绘制外圆所需的第二矩形RectF类对象;根据所述第一矩形RectF类对象、预设的内圆旋转起点角度、预设的内圆旋转终点角度和所述内圆样式,调用安卓端画弧线函数drawArc(),绘制得到所述圆形进度条的内圆视图,以及根据所述第二矩形RectF类对象、预设的外圆旋转起点角度、基于进度条实际值计算而得的外圆旋转终点角度和所述外圆样式,调用所述画弧线函数drawArc(),还绘制得到所述圆形进度条的外圆视图;当用户设置或更新所述进度条实际值时,调用安卓端属性动画方式ValueAnimator,在预设的动画时长内从最小区间值开始从小至大地逐步返回位于动画执行参数值区间内的各个区间值,并在每返回一个区间值后,先基于该区间值更新计算所述外圆旋转终点角度,然后根据所述外圆旋转终点角度的更新计算结果,调用安卓端持续绘制方式postInvalidate重新绘制所述外圆视图,得到动态展示的安卓端圆形进度条,其中,所述动画执行参数值区间在用户设置时为[0,mCP
set
]而在更新时为[mCP
bf
,mCP
af
],mCP
set
表示用户设置的进度条实际值,mCP
bf
表示更新前的进度条实际值,mCP
af
表示更新后的进度条实际值。2.如权利要求1所述的安卓端圆形进度条动态展示方法,其特征在于,所述方法还包括:初始化所述圆形进度条的文字样式;根据所述进度条实际值,还计算得到进度比例值;调用安卓端构造函数Rect(),新建得到一个矩形Rect类对象;根据所述进度比例值和所述矩形Rect类对象,调用安卓端文本矩形获取函数getTextBounds(),得到用于展示所述进度比例值的文本矩形框;调用安卓端矩形框宽度获取函数width(),获取所述文本矩形框的宽度,以及调用安卓端矩形框高度获取函数height(),获取所述文本矩形框的高度;根据所述文本矩形框的宽度和高度以及所述圆形进度条的宽度和高度,按照如下公式计算得到描述文字所需的文本起点坐标(TextX,TextY):式中,Width表示所述圆形进度条的宽度,Height表示所述圆形进度条的高度,TextWidth表示所述文本矩形框的宽度,TextHeight表示所述文本矩形框的高度;根据所述进度比例值、所述文本起点坐标和所述文字样式,调用安卓端画文字函数drawText()绘制得到所述圆形进度条的文字视图。
3.根据权利要求2所述的安卓端圆形进度条动态展示方法,其特征在于,在每返回一个区间值后,所述方法还包括:先基于该区间值更新计算所述进度比例值以及所述文本起点坐标,然后根据所述进度比例值以及所述文本起点坐标的更新计算结果,还调用所述安卓端持续绘制方式postInvalidate重新绘制所述文字视图。4.根据权利要求1所述的安卓端圆形进度条动态展示方法,其特征在于,初始化圆形进度条的内圆样式和外圆样式,包括:判断用户是否配置了目标圆形样式的属性,其中,所述目标圆形样式是指圆形进度条的内圆样式或外圆样式;若是,则调用安卓端画笔函数Paint(),新建一个画笔来作为所述目标圆形样式的画笔,并调用安卓端画笔颜色设置函数Paint.setColor()来获取用户为所述目标圆形样式配置的画笔颜色属性,以及调用安卓端画笔粗细设置函数Paint.setStrokeWidth()来获取用户为所述目标圆形样式配置的画笔粗细属性。5.根据权利要求1所述的安卓端圆形进度条动态展示方法,其特征在于,获取用户设置的进度条高度和进度条宽度,并根据所述进度条高度和所述进度条宽度确定所述圆形进度条的且数值相等的宽度和高度,包括:调用安卓端默认大小获取函数getDefaultSize()和安卓端建议最低高度获取函数getSuggestedMinimumHeight()来获取用户设置的进度条高度,以及调用所述安卓端默认大小获取函数getDe...

【专利技术属性】
技术研发人员:蒋晓龙刘未张立
申请(专利权)人:成都屏盟科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1