一种Mac下自定义形状进度条的优化处理算法的制作方法

文档序号:11514744阅读:467来源:国知局

本发明涉及图像(图形)显示技术领域,具体说是一种mac下自定义形状进度条的优化处理算法。所述mac指苹果电脑(曾被译为麦金塔电脑,即macintosh的音译),运行osx系统(苹果公司为麦金塔电脑开发的专属操作系统)。



背景技术:

现有的osx系统中,提供了现成的进度条控件,但是系统提供的进度条控件只能绘制条状进度条(直线状进度条),而且不支持背景改变颜色。

条状进度条(直线状进度条)早已是司空见惯的进度条式样,容易给用户造成视觉疲劳,不符合个性化需求,不能让用户产生眼前一亮的感觉,因此不能满足市场竞争需要的个性化突破。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种mac下自定义形状进度条的优化处理算法,基于cashapelayer以及nsbezierpath重新构造进度条形状,使进度条呈现自定义形状,个性化效果强,可叠加任意想要的效果。

为达到以上目的,本发明采取的技术方案是:

一种mac下自定义形状进度条的优化处理算法,其特征在于,包括如下步骤:

步骤1,初始化设定,具体包括:

设定一画面类nsview,用于放置底层图层和覆盖图层;

设定一个基于cashapelayer的底层图层,用于显示自定义形状的背景图像;

设定一个基于cashapelayer的覆盖图层,用于显示与自定义形状的背景图像形状相同的进度条图像;

步骤2,在底层图层上,根据用户选择的自定义形状,绘制背景图像,背景图像用于为进度条图像增加视觉效果,

步骤3,在覆盖图层上,根据用户选择的自定义形状,绘制进度条图像,进度条图像,对应着从0%到100%的完整的进度条形状,

步骤4,获取需要展现的任务的时长信息,将时长按秒计算分配到对应于进度条图像周长的具体长度数值,根据具体长度数值,结合当前已进行的任务的时长信息,在覆盖图层上绘制步骤3所设定的自定义形状,对应着从0%到当前已进行的任务的时长的进度条形状。

在上述技术方案的基础上,步骤2具体包括:

根据用户选择的自定义形状,绘制一个该自定义形状作为背景图像,

设定自定义形状的宽度数值,单位为像素,

设定自定义形状的背景颜色,

设定自定义形状的颜色,即绘制该自定义形状的笔画的颜色。

在上述技术方案的基础上,自定义形状调用nsbezierpath绘制得到。

在上述技术方案的基础上,步骤3具体包括:

根据步骤2中用户选择的自定义形状,绘制一个该自定义形状作为进度条图像,其位置位于步骤2所述背景图像的正上方以遮盖住背景图像,

设定自定义形状的宽度数值,单位为像素,

设定自定义形状的背景颜色,

设定自定义形状的颜色,即绘制该自定义形状的笔画的颜色;

设定笔画的开始位置为自定义形状所在y轴的最高点,结束位置和开始位置一样。

在上述技术方案的基础上,还包括以下步骤:

捕获鼠标操作,当鼠标拖动当前已进行的任务的时长时,获取鼠标最终停止时对应的当前已进行的任务的时长信息,

根据具体长度数值,结合鼠标最终停止时对应的当前已进行的任务的时长信息,在覆盖图层上绘制步骤3所设定的自定义形状。

在上述技术方案的基础上,还包括以下步骤:捕获鼠标操作,当鼠标点击进度条某处时,获取鼠标最终点击处对应的当前已进行的任务的时长信息,

根据具体长度数值,结合鼠标最终点击处对应的当前已进行的任务的时长信息,在覆盖图层上绘制步骤3所设定的自定义形状。

在上述技术方案的基础上,步骤2和3中,自定义形状包括但不限于:圆环图案,多边形图案,所述多边形图案的边数大于等于6。

本发明所述的mac下自定义形状进度条的优化处理算法,基于cashapelayer以及nsbezierpath重新构造进度条形状,使进度条呈现自定义形状,个性化效果强,可叠加任意想要的效果。

附图说明

本发明有如下附图:

图1本发明的流程框图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

如图1所示,本发明所述的mac下自定义形状进度条的优化处理算法,包括如下步骤:

步骤1,初始化设定,具体包括:

设定一画面类nsview,用于放置底层图层和覆盖图层;

设定一个基于cashapelayer的底层图层,用于显示自定义形状的背景图像;

设定一个基于cashapelayer的覆盖图层,用于显示与自定义形状的背景图像形状相同的进度条图像;

步骤2,在底层图层上,绘制背景图像,具体包括:

根据用户选择的自定义形状,绘制一个该自定义形状作为背景图像,

设定自定义形状的宽度数值,单位为像素,例如宽度为3,

设定自定义形状的背景颜色,例如背景颜色为透明,

设定自定义形状的颜色,即绘制该自定义形状的笔画的颜色;

以自定义形状为圆环为例,具体绘制方式为:

在底层图层上,调用nsbezierpath画曲线,根据所画曲线的位置,再涂上颜色,可以画出圆环状的自定义形状;

nsbezierpath是用来绘制基本或复杂形状的函数,可绘制的形状包括但不限于圆环,具体绘制方式可按现有技术实施;

背景图像可以为进度条图像增加视觉效果,例如:增加进度条图像的立体效果,或增加进度条图像的阴影效果,或增加进度条图像的光晕效果,等等;

背景图像的大小,根据实际需要,可以大于、等于或小于进度条图像的大小;

背景图像的数量可以多于一个,但至少有一个,多于一个时,各背景图像的形状相同或不同,大小不同;

背景图像除了绘制的方式添加外,还可以直接调用本地或网络或数据库中的已有图片,将图片添加到底层图层中,作为背景图像使用;

步骤3,在覆盖图层上,绘制进度条图像,具体包括:

根据步骤2中用户选择的自定义形状,绘制一个该自定义形状作为进度条图像,其位置位于步骤2所述背景图像的正上方以遮盖住背景图像,

可以遮盖住背景图像的全部或局部,所述局部可以是背景图像的边缘,或背景图像的中间,或背景图像的上部,或背景图像的左部,

设定自定义形状的宽度数值,单位为像素,例如宽度为3,宽度同背景图像的宽度为宜,

设定自定义形状的背景颜色,例如背景颜色为透明,

设定自定义形状的颜色,即绘制该自定义形状的笔画的颜色;

设定笔画的开始位置为自定义形状所在y轴的最高点,结束位置和开始位置一样;

进度条图像,对应着从0%到100%的完整的进度条形状;

步骤4,获取需要展现的任务的时长信息,例如:获取要播放的歌曲的时长,

将时长按秒计算分配到对应于进度条图像周长(以圆环为例即是指360度圆弧的长度)的具体长度数值,即:计算出,每一秒应显示多少长度的直线或弧线才能使得任务时长结束时恰好能绘制出一个完整的自定义形状,

根据具体长度数值,结合当前已进行的任务的时长信息,在覆盖图层上绘制步骤3所设定的自定义形状,

步骤4的绘制将采用设定自定义形状的颜色,对应着从0%到当前已进行的任务的时长(当前已完成的进度)的进度条形状。

在上述技术方案的基础上,还包括以下步骤:

捕获鼠标操作,当鼠标拖动当前已进行的任务的时长时,获取鼠标最终停止时对应的当前已进行的任务的时长信息,

根据具体长度数值,结合鼠标最终停止时对应的当前已进行的任务的时长信息,在覆盖图层上绘制步骤3所设定的自定义形状。

在上述技术方案的基础上,所述鼠标拖动是指:鼠标左键点击当前已进行的任务的时长,且不释放鼠标左键时,鼠标任意方向的移动都带动当前已进行的任务的时长增加或减小。

在上述技术方案的基础上,还包括以下步骤:捕获鼠标操作,当鼠标点击进度条某处时,获取鼠标最终点击处对应的当前已进行的任务的时长信息,

根据具体长度数值,结合鼠标最终点击处对应的当前已进行的任务的时长信息,在覆盖图层上绘制步骤3所设定的自定义形状。

在上述技术方案的基础上,步骤2和3中,自定义形状的宽度为默认值,或为自定义值,单位为像素,宽度包括但不限于3。

在上述技术方案的基础上,进度条图像对应的自定义形状,自定义形状的颜色默认为亮色,所述亮色包括但不限于:黄色,橙色。

在上述技术方案的基础上,步骤2和3中,自定义形状包括但不限于:圆环图案,多边形图案,所述多边形图案的边数大于等于6。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1