一种带下载进度和状态的下载按钮的实现方法技术

技术编号:19744653 阅读:28 留言:0更新日期:2018-12-12 04:38
本发明专利技术涉及一种带下载进度和状态的下载按钮的实现方法,包括如下步骤:定义类DashSpinner,继承Android系统提供的View类,用来绘制带下载进度的下载控件,定义必要的变量参数,定义方法drawOuterRing,用来设置画笔的颜色、style、边的宽度并绘制外圆,定义方法getInnerCircleAlpha,用来计算并返回内部圆的透明度数值,定义方法drawInnerCircle,用来绘制内部圆,定义方法drawArc用来绘制下载过程中旋转的弧线,重新自定义View中的onDraw方法,绘制外圆、内圆、状态和圆弧。本发明专利技术,采用自定义VIEW控件,增加下载进度和下载状态的呈现,一个控件即可完成下载、进度、提示等功能,增强用户体验的同时也减少应用所占的资源,提升应用性能。

【技术实现步骤摘要】
一种带下载进度和状态的下载按钮的实现方法
本专利技术涉及下载进度交互界面设计与优化
,具体说是一种带下载进度和状态的下载按钮的实现方法。
技术介绍
Android系统提供了ProgressBar用来显示下载进度,ProgressBar是进度条组件,通常用于向用户展示某个耗时操作完成的进度,而不让用户感觉是程序失去了响应,从而更好地提升用户界面的友好性。由ProgressBar生成的进度条只能是线形,并不能显示具体下载进度的数值,也不能进行下载前、下载中、下载成功和失败各种不同状态来展现相应的交互,其功能单一,效果不佳。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种带下载进度和状态的下载按钮的实现方法,采用自定义VIEW控件,增加下载进度和下载状态的呈现,一个控件即可完成下载、进度、提示等功能,增强用户体验的同时也减少应用所占的资源,提升应用性能。为达到以上目的,本专利技术采取的技术方案是:一种带下载进度和状态的下载按钮的实现方法,其特征在于,包括如下步骤:定义类DashSpinner,继承Android系统提供的View类,用来绘制带下载进度的下载控件,定义必要的变量参数,至少包括:定义变量msProgressText,是Android系统提供的String字符串类型的变量,用来保存下载进度,定义变量mTextColorFrom和mTextColorTo,都是Android系统提供的int类型的变量,用来设置文字颜色的变化,定义变量mOuterRingColor,是Android系统提供的整型int类型的变量,用来设置外圆的颜色,定义变量mnRingRadius,是Android系统提供的int类型的变量,用来计算外圆的半径,定义变量mnProgress,是Android系统提供的int类型的变量,用来设置下载的进度,定义变量mnViewCenter,是Android系统提供的int类型的变量用来计算控件的中心位置,定义变量mPaint,是Android系统提供的Paint画笔类型的变量,用来绘制外部圆,定义枚举DASH_MODE,其中的值用于表示当前的下载进度状态,定义变量mCurrentDashMode和mNextDashMode,都是DASH_MODE枚举类型的变量用来设置当前状态和接下来的状态,定义变量mArcRect是Android系统提供的RectF类型的变量用来设置圆弧所在的位置,定义变量mnRingWidth,是Android系统提供的浮点型数据类型的变量,用来设置圆的宽度,定义方法drawOuterRing,用来设置画笔的颜色、style、边的宽度并绘制外圆,定义方法getInnerCircleAlpha,用来计算并返回内部圆的透明度数值,定义方法drawInnerCircle,用来绘制内部圆,定义方法drawArc用来绘制下载过程中旋转的弧线,重新自定义View中的onDraw方法,绘制外圆、内圆、状态和圆弧。在上述技术方案的基础上,进一步定义变量mInnerCircleSuccessColor、mInnerCircleFailureColor和mInnerCircleUnknownColor,都是Android系统提供的int类型的变量,用来控制下载成功的颜色、下载失败的颜色和未知下载类型的错误颜色。在上述技术方案的基础上,定义枚举DASH_MODE,其中的值包括:NONE表示当前的下载进度状态为正常,DOWNLOAD表示当前的下载进度状态为下载,TRANSITION_TEXT_AND_CIRCLE表示当前的下载进度状态为下载中,TRANSITION_LINE表示当前的下载进度状态为画线,SUCCESS表示当前的下载进度状态为成功,FAILURE表示当前的下载进度状态为失败,UNKNOWN表示当前的下载进度状态为未知。在上述技术方案的基础上,进一步定义变量mbShowProgress,是Android系统提供的布尔数据类型的变量,用来控制是否显示下载进度。在上述技术方案的基础上,定义方法drawOuterRing,具体包括:定义canvas是Android系统提供的Canvas画布类型的变量用来绘制,定义setStyle是Android系统Paint类中的方法用来设置画笔只绘制轮廓,定义setStrokeWidth设置画笔的宽度,定义setColor方法设置画笔的颜色用来绘制外部圆,定义drawCircle是Android系统Canvas类中的方法用来绘制圆。在上述技术方案的基础上,定义方法getInnerCircleAlpha,具体包括:定义MAX_ALPHA是定义的常量最大的透明度值,定义mnProgress是当前的进度,定义mCurrAlpha是根据当前的进度计算内圆的当前透明度数值。在上述技术方案的基础上,定义方法drawInnerCircle,具体包括:定义mDrawRadius是Android系统提供的浮点类型的变量,用来计算内圆的半径值,定义mPaint是画笔用来绘制内部圆,其中setStyle方法设置为FILL用来填充绘制,setColor方法用来设置内部圆的颜色,setAlpha方法用来设置画笔的透明度,定义drawCircle方法是Android系统Canvas类中的方法用来绘制内部圆。在上述技术方案的基础上,定义方法drawArc,具体包括:定义canvas是Android系统提供的画布用来绘制,drawArc是其中的方法用来绘制圆弧,定义mArcRect是指定圆弧的位置,定义mnIndeterminateStartPosition是圆弧的开始角度,定义mnArcLength是圆弧的角度,定义false指定只绘制圆弧线不绘制中心,定义mPaint是绘制用到的画笔。在上述技术方案的基础上,还包括:定义方法setProgress,用来设置当前的下载进度并绘制相应的状态。在上述技术方案的基础上,重新自定义View中的onDraw方法,具体包括:定义方法resetPaint用来重置画笔,清空画笔的颜色、style,并设置为抗锯齿属性为真,定义canvas是Android系统自定义View提供的画布用来进行相关绘制,定义drawOuterRing方法用来绘制外部圆,定义drawInnerCircle方法用来绘制内部圆,定义drawStateContent方法用来绘制当前的状态交互,定义drawArc方法用来绘制下载中的圆弧。本专利技术所述的带下载进度和状态的下载按钮的实现方法,采用自定义VIEW控件,增加下载进度和下载状态的呈现,一个控件即可完成下载、进度、提示等功能,增强用户体验的同时也减少应用所占的资源,提升应用性能。本专利技术采用自定义View实现,只需定义不同的状态,然后根据当前下载的状态和下载的进度相应地绘制外部圆、内部圆、进度值、外部弧线和下载成功、下载失败、未知下载错误相应的动画进而提供带下载进度的自定义下载按钮控件。附图说明本专利技术有如下附图:图1本专利技术的流程图。具体实施方式以下结合附图对本专利技术作进一步详细说明。如图1所示,本专利技术所述的带下载进度和状态的下载按钮的实现方法,包括如下步骤:定义类DashSpinner,继承Android本文档来自技高网...

【技术保护点】
1.一种带下载进度和状态的下载按钮的实现方法,其特征在于,包括如下步骤:定义类DashSpinner,继承Android系统提供的View类,用来绘制带下载进度的下载控件,定义必要的变量参数,至少包括:定义变量msProgressText,是Android系统提供的String字符串类型的变量,用来保存下载进度,定义变量mTextColorFrom和mTextColorTo,都是Android系统提供的int类型的变量,用来设置文字颜色的变化,定义变量mOuterRingColor,是Android系统提供的整型int类型的变量,用来设置外圆的颜色,定义变量mnRingRadius,是Android系统提供的int类型的变量,用来计算外圆的半径,定义变量mnProgress,是Android系统提供的int类型的变量,用来设置下载的进度,定义变量mnViewCenter,是Android系统提供的int类型的变量用来计算控件的中心位置,定义变量mPaint,是Android系统提供的Paint画笔类型的变量,用来绘制外部圆,定义枚举DASH_MODE,其中的值用于表示当前的下载进度状态,定义变量mCurrentDashMode和mNextDashMode,都是DASH_MODE枚举类型的变量用来设置当前状态和接下来的状态,定义变量mArcRect是Android系统提供的RectF类型的变量用来设置圆弧所在的位置,定义变量mnRingWidth,是Android系统提供的浮点型数据类型的变量,用来设置圆的宽度,定义方法drawOuterRing,用来设置画笔的颜色、style、边的宽度并绘制外圆,定义方法getInnerCircleAlpha,用来计算并返回内部圆的透明度数值,定义方法drawInnerCircle,用来绘制内部圆,定义方法drawArc用来绘制下载过程中旋转的弧线,重新自定义View中的onDraw方法,绘制外圆、内圆、状态和圆弧。...

【技术特征摘要】
1.一种带下载进度和状态的下载按钮的实现方法,其特征在于,包括如下步骤:定义类DashSpinner,继承Android系统提供的View类,用来绘制带下载进度的下载控件,定义必要的变量参数,至少包括:定义变量msProgressText,是Android系统提供的String字符串类型的变量,用来保存下载进度,定义变量mTextColorFrom和mTextColorTo,都是Android系统提供的int类型的变量,用来设置文字颜色的变化,定义变量mOuterRingColor,是Android系统提供的整型int类型的变量,用来设置外圆的颜色,定义变量mnRingRadius,是Android系统提供的int类型的变量,用来计算外圆的半径,定义变量mnProgress,是Android系统提供的int类型的变量,用来设置下载的进度,定义变量mnViewCenter,是Android系统提供的int类型的变量用来计算控件的中心位置,定义变量mPaint,是Android系统提供的Paint画笔类型的变量,用来绘制外部圆,定义枚举DASH_MODE,其中的值用于表示当前的下载进度状态,定义变量mCurrentDashMode和mNextDashMode,都是DASH_MODE枚举类型的变量用来设置当前状态和接下来的状态,定义变量mArcRect是Android系统提供的RectF类型的变量用来设置圆弧所在的位置,定义变量mnRingWidth,是Android系统提供的浮点型数据类型的变量,用来设置圆的宽度,定义方法drawOuterRing,用来设置画笔的颜色、style、边的宽度并绘制外圆,定义方法getInnerCircleAlpha,用来计算并返回内部圆的透明度数值,定义方法drawInnerCircle,用来绘制内部圆,定义方法drawArc用来绘制下载过程中旋转的弧线,重新自定义View中的onDraw方法,绘制外圆、内圆、状态和圆弧。2.如权利要求1所述的带下载进度和状态的下载按钮的实现方法,其特征在于:进一步定义变量mInnerCircleSuccessColor、mInnerCircleFailureColor和mInnerCircleUnknownColor,都是Android系统提供的int类型的变量,用来控制下载成功的颜色、下载失败的颜色和未知下载类型的错误颜色。3.如权利要求1所述的带下载进度和状态的下载按钮的实现方法,其特征在于:定义枚举DASH_MODE,其中的值包括:NONE表示当前的下载进度状态为正常,DOWNLOAD表示当前的下载进度状态为下载,TRANSITION_TEXT_AND_CIRCLE表示当前的下载进度状态为下载中,TRANSITION_LINE表示当前的下载进度状态为画线,SUCCESS表示当前的下载进度状态为成功,FAILURE表示当前的下载进度状态为失败,UNKNOWN表示当前的下载进度状态为未知。...

【专利技术属性】
技术研发人员:孙征
申请(专利权)人:北京酷我科技有限公司
类型:发明
国别省市:北京,11

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

1