书签 分享 收藏 举报 版权申诉 / 15

一种图形界面轮盘控件的实现方法及系统.pdf

  • 上传人:sha****007
  • 文档编号:6378574
  • 上传时间:2019-06-05
  • 格式:PDF
  • 页数:15
  • 大小:1.56MB
  • 摘要
    申请专利号:

    CN201410170280.0

    申请日:

    2014.04.25

    公开号:

    CN105022618A

    公开日:

    2015.11.04

    当前法律状态:

    驳回

    有效性:

    无权

    法律详情:

    发明专利申请公布后的驳回IPC(主分类):G06F 9/44申请公布日:20151104|||实质审查的生效IPC(主分类):G06F 9/44申请日:20140425|||公开

    IPC分类号:

    G06F9/44

    主分类号:

    G06F9/44

    申请人:

    TCL集团股份有限公司

    发明人:

    李贞贞; 李祥林

    地址:

    516006广东省惠州市仲恺高新技术开发区十九号小区

    优先权:

    专利代理机构:

    深圳市君胜知识产权代理事务所44268

    代理人:

    王永文; 刘文求

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开一种图形界面轮盘控件的实现方法及系统,所述方法:A、在布局文件中布局轮盘控件并进行内容输入和参数设置;B、调用初始化函数对所设置的参数进行初始化,调用测算函数和布局函数计算得出控件宽高数据和内容显示位置;C、调用绘制函数利用绘制数据绘制轮盘控件;D、接收滚动指令,根据滚动距离和滚动时间计算偏移量,调用绘制函数清除控件中显示内容后根据偏移量重新绘制内容。本发明轮盘控件的实现中扩展了参数接口设置,提供了更为丰富的样式设置。并通过动态计算偏移量,调用系统层绘制函数连续绘制内容实现内容的平滑移动效果,而不通过现有封装的接口实现内容移动,减少应用代码冗余,提高了程序的执行效率,节约了系统资源。

    权利要求书

    权利要求书
    1.  一种图形界面轮盘控件的实现方法,其特征在于,所述方法包括以下步骤:
    A、在布局文件中布局一轮盘控件并进行内容输入和参数设置;
    B、调用初始化函数对所设置的参数进行初始化得到初始化数据,并调用测算函数和布局函数分别计算得出轮盘控件宽高数据和所输入内容的显示位置数据;
    C、调用绘制函数利用所得出的初始化数据、宽高数据及输入内容显示位置数据绘制轮盘控件;
    D、接收用户滚动指令,根据滚动距离和滚动时间计算得出偏移量,调用绘制函数清除轮盘控件中所显示内容后根据所得出偏移量重新绘制轮盘控件的显示内容。

    2.  根据权利要求1所述的图形界面轮盘控件的实现方法,其特征在于,输入的内容进行分类并保存在预设的链表中,所述链表中不同类内容分别对应不同的ID号。

    3.  根据权利要求2所述的图形界面轮盘控件的实现方法,其特征在于,所述步骤A具体为:
    A1、在布局文件中布局一轮盘控件,设置轮盘控件的宽度值、高度值及左右内边距值;
    A2、将所述链表输入到轮盘控件接口;
    A3、设置文字内容的显示行数、文字大小及颜色、文字内容的显示位置、文本控件的字体颜色及大小。

    4.  根据权利要求3所述的图形界面轮盘控件的实现方法,其特征在于,当轮盘控件的宽度值设置为固定值时,若轮盘控件每行实际可显示的内容宽度大于或等于输入的每行内容宽度,则输入的内容可以完全显示,若轮盘控件每行实际可显示的内容宽度小于输入的内容宽度,则对输入的内容进行截取;
    当轮盘控件的宽度值设置为内容自适应时,检测所有内容行并确定最长内容的宽度,若最长内容的宽度大于或等于屏幕宽度时,轮盘控件的宽度设置为屏幕的宽度,若最长内容的宽度小于等于屏幕宽度时,轮盘控件的宽度设置为最长内容的宽度。

    5.  根据权利要求3所述的图形界面轮盘控件的实现方法,其特征在于,当文字内容的高度大于轮盘控件设置的高度值时,自动调整文字大小,使文字内容完整显示。

    6.  根据权利要求3所述的图形界面轮盘控件的实现方法,其特征在于,所述步骤B具体为:
    B1、调用初始化函数利用所输入设置的参数进行初始化,得出轮盘控件各要素的字体/颜色绘制数据;
    B2、根据布局文件中输入的内容和参数设置,调用测算函数计算轮盘控件的绘制宽度值和绘制高度值,并完成重新设置轮盘控件的宽高;
    B3、调用布局函数计算文字内容的显示位置及其行间距、文本控件的绘制位置、文本控件的绘制宽度值及高度值。

    7.  根据权利要求2所述的图形界面轮盘控件的实现方法,其特征在于,所述步骤C具体为:调用绘制函数根据绘制数据在屏幕上通过设置的相应画笔绘制轮盘控件,其中,当设置为可循环查看内容时,绘制到链表的第一个ID号对应的内容时,上一条内容将绘制最后一个ID号对应的内容;绘制到链表的最后一个ID号对应的内容时,下一条内容将绘制第一个ID号对应的内容;
    当设置为不可循环查看内容时,绘制到链表的第一个ID号对应的内容时,上一条内容为空,将不再继续绘制;绘制到链表的最后一个ID号对应的内容时,下一条内容为空,将不再绘制。

    8.  根据权利要求2所述的图形界面轮盘控件的实现方法,其特征在于,所述步骤D具体为:
    D1、接收用户滚动指令,检测该指令输入的滚动距离和滚动时间,并利用其计算出加速度值,进而计算出当前时间屏幕的y轴坐标,当前时间屏幕的y轴坐标与上一次获得的y轴坐标之差得出本次绘制的偏移量;
    D2、调用绘制函数清除当前轮盘控件中显示的内容,重新绘制显示内容时,每一行内容的y轴坐标都偏移所得出的偏移量的距离,且设置滚动时间内连续多次调用绘制函数绘制内容,形成内容滚动效果。

    9.  根据权利要求7所述的图形界面轮盘控件的实现方法,其特征在于,当内容滚动超过一行高度值的一半时,则设置继续滚动直至屏幕上内容处于设定位置;当内容滚动不超过一行高度值的一半时,则设置滚动回滚,直至屏幕上内容处于设定位置。

    10.  一种图形界面轮盘控件的实现系统,其特征在于,所述系统包括:
    设置模块,用于在布局文件中布局一轮盘控件并进行内容输入和参数设置;
    绘制数据计算模块,用于调用初始化函数对所设置的参数进行初始化得到初始化数据,并调用测算函数和布局函数分别计算得出轮盘控件宽高数据和所输入内容的显示位置数据;
    绘制模块,用于调用绘制函数利用绘制数据绘制轮盘控件;以及用于接收用户滚动指令,根据滚动距离和滚动时间计算得出偏移量,调用绘制函数清除轮盘控件中所显示内容后根据所得出偏移量重新绘制轮盘控件的显示内容。

    说明书

    说明书一种图形界面轮盘控件的实现方法及系统
    技术领域
    本发明涉及软件图形技术领域,尤其涉及一种图形界面轮盘控件的实现方法及系统。
    背景技术
    Android应用的开发,越来越注重于操作的流畅性和界面的美观性。在需要滑动的应用界面,轮盘方式的滑动操作是经常用到的,比如DTV/ATV的节目选择界面。Android自带的时间设置就是轮盘方式操作。但是它只能设置数字而且可显示的文字行数也固定,对于需要自由设置内容及宽高等多元化需要,已不能满足。而已有的一些实现轮盘操作的方法,在文字滑动时效果不够流畅,内存占用也过大。
    因此,现有技术还有待于改进和发展。
    发明内容
    鉴于上述现有技术的不足,本发明的目的在于提供一种图形界面轮盘控件的实现方法及系统,旨在解决目前轮盘控件滑动不够流程、内存占用大的问题。
    本发明的技术方案如下:
    一种图形界面轮盘控件的实现方法,其中,所述方法包括以下步骤:
    A、在布局文件中布局一轮盘控件并进行内容输入和参数设置;
    B、调用初始化函数对所设置的参数进行初始化得到初始化数据,并调用测算函数和布局函数分别计算得出轮盘控件宽高数据和所输入内容的显示位置数据;
    C、调用绘制函数利用所得出的初始化数据、宽高数据及输入内容显示位置数据绘制轮盘控件;
    D、接收用户滚动指令,根据滚动距离和滚动时间计算得出偏移量,调用绘制函数清除轮盘控件中所显示内容后根据所得出偏移量重新绘制轮盘控件的显示内容。
    所述的图形界面轮盘控件的实现方法,其中,输入的内容进行分类并保存在预设的链表中,所述链表中不同类内容分别对应不同的ID号。
    所述的图形界面轮盘控件的实现方法,其中,所述步骤A具体为:
    A1、在布局文件中布局一轮盘控件,设置轮盘控件的宽度值、高度值及左右内边距值;
    A2、将所述链表输入到轮盘控件接口;
    A3、设置文字内容的显示行数、文字大小及颜色、文字内容的显示位置、文本控件的字体颜色及大小。
    所述的图形界面轮盘控件的实现方法,其中,当轮盘控件的宽度值设置为固定值时,若轮盘控件每行实际可显示的内容宽度大于或等于输入的每行内容宽度,则输入的内容可以完全显示,若轮盘控件每行实际可显示的内容宽度小于输入的内容宽度,则对输入的内容进行截取;
    当轮盘控件的宽度值设置为内容自适应时,检测所有内容行并确定最长内容的宽度,若最长内容的宽度大于或等于屏幕宽度时,轮盘控件的宽度设置为屏幕的宽度,若最长内容的宽度小于等于屏幕宽度时,轮盘控件的宽度设置为最长内容的宽度。
    所述的图形界面轮盘控件的实现方法,其中,当文字内容的高度大于轮盘控件设置的高度值时,自动调整文字大小,使文字内容完整显示。
    所述的图形界面轮盘控件的实现方法,其中,所述步骤B具体为:
    B1、调用初始化函数利用所输入设置的参数进行初始化,得出轮盘控件各要素的字体/颜色绘制数据;
    B2、根据布局文件中输入的内容和参数设置,调用测算函数计算轮盘控件的绘制宽度值和绘制高度值,并完成重新设置轮盘控件的宽高;
    B3、调用布局函数计算文字内容的显示位置及其行间距、文本控件的绘制位置、文本控件的绘制宽度值及高度值。
    所述的图形界面轮盘控件的实现方法,其中,所述步骤C具体为:调用绘制函数根据绘制数据在屏幕上通过设置的相应画笔绘制轮盘控件,其中,当设置为可循环查看内容时,绘制到链表的第一个ID号对应的内容时,上一条内容将绘制最后一个ID号对应的内容;绘制到链表的最后一个ID号对应的内容时,下一条内容将绘制第一个ID号对应的内容。
    当设置为不可循环查看内容时,绘制到链表的第一个ID号对应的内容时,上一条内容为空,将不再继续绘制;绘制到链表的最后一个ID号对应的内容时,下一条内容为空,将不再绘制。
    所述的图形界面轮盘控件的实现方法,其中,所述步骤D具体为:
    D1、接收用户滚动指令,检测该指令输入的滚动距离和滚动时间,并利用其计算出加速度值,进而计算出当前时间屏幕的y轴坐标,当前时间屏幕的y轴坐标与上一次获得的y轴坐标之差得出本次绘制的偏移量;
    D2、调用绘制函数清除当前轮盘控件中显示的内容,重新绘制显示内容时,每一行内容的y轴坐标都偏移所得出的偏移量的距离,且设置滚动时间内连续多次调用绘制函数绘制内容,形成内容滚动效果。
    所述的图形界面轮盘控件的实现方法,其中,当内容滚动超过一行高度值的一半时,则设置继续滚动直至屏幕上内容处于设定位置;当内容滚动不超过一行高度值的一半时,则设置滚动回滚,直至屏幕上内容处于设定位置。
    一种图形界面轮盘控件的实现系统,其中,所述系统包括:
    设置模块,用于在布局文件中布局一轮盘控件并进行内容输入和参数设置;
    绘制数据计算模块,用于调用初始化函数对所设置的参数进行初始化得到初始化数据,并调用测算函数和布局函数分别计算得出轮盘控件宽高数据和所输入内容的显示位置数据;
    绘制模块,用于调用绘制函数利用绘制数据绘制轮盘控件;以及用于接收用户滚动指令,根据滚动距离和滚动时间计算得出偏移量,调用绘制函数清除轮盘控件中所显示内容后根据所得出偏移量重新绘制轮盘控件的显示内容。
    有益效果:本发明提供一种图形界面轮盘控件的实现方法及系统,通过轮盘控件的实现应用中扩展了参数接口设置,提供了更为丰富的样式设置。并通过动态计算偏移量,调用系统层绘制函数连续绘制内容实现内容的平滑移动效果,而不通过现有封装的接口实现内容移动,提高了程序的执行效率,节约了系统资源。
    附图说明
    图1为本发明具体实施例中图形界面轮盘控件的实现方法流程图。
    图2为图1中步骤S100的具体方法流程图。
    图3为图1中步骤S200的具体方法流程图。
    图4为本发明具体实施例中图形界面轮盘控件的布局效果图。
    图5为图1中步骤S400的具体方法流程图。
    图6为本发明的轮盘控件滑动操作方法较佳实施例的流程图。
    图7为本发明具体实施例中图形界面轮盘控件的实现系统原理框图。
    具体实施方式
    本发明提供一种图形界面轮盘控件的实现方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
    本发明提供的轮盘控件继承自FrameLayout(单帧布局),在轮盘控件的中央位置布局一个文本(TextView)控件,用于显示控件最中间的内容,可以实现当前选中内容的跑马灯效果。 TextView控件所在的位置也作为一个参考点,是轮盘控件的中心,文字内容的位置布局是以这个参考点为基点的。
    如图1所示的一种图形界面轮盘控件的实现方法,其中,所述方法包括以下步骤:
    S100、在布局文件中布局一轮盘控件并进行内容输入和参数设置。
    其中,输入的内容进行分类并保存在预设的链表中,方便按顺序进行显示,所述链表中不同类内容分别对应不同的ID号,在绘制内容时,根据ID号查找,将相应的内容绘制在屏幕上。
    S200、调用初始化函数对所设置的参数进行初始化得到初始化数据,并调用测算函数和布局函数分别计算得出轮盘控件宽高数据和所输入内容的显示位置数据。
    具体地,调用初始化函数利用所输入的设置参数进行初始化,所得出的初始化数据包括轮盘控件各要素的绘制时需要的颜色,字体大小,字体颜色等数据;调用测算函数(onMeasure)完成轮盘控件的宽高设置;调用布局函数(onLayout)计算内容显示位置。
    S300、调用绘制函数利用所得出的基本要素数据、宽高数据及输入内容显示位置数据绘制轮盘控件。
    S400、接收用户滚动指令,根据滚动距离和滚动时间计算得出偏移量,调用绘制函数清除轮盘控件中所显示内容后根据所得出偏移量重新绘制轮盘控件的显示内容。
    如图2所示的较佳实施例中,上述步骤S100具体为:
    S110、在布局文件中布局一轮盘控件,设置轮盘控件的宽度值、高度值及左右内边距值。轮盘控件的高度必须是一个数值,其不能自适应内容。
    S120、将所述链表输入到轮盘控件接口。
    S130、设置文字内容的显示行数、文字大小及颜色、文字内容的显示位置、文本控件的字体颜色及大小。
    其中,显示内容的位置为默认居中,其可不设置,当然也可包括其他设置。
    如图3所示的较佳实施例中,上述步骤S200具体为:
    S210、调用初始化函数利用所输入设置的参数进行初始化,得出轮盘控件各要素的字体/颜色绘制数据;
    S220、根据布局文件中输入的内容和参数设置,调用测算函数计算轮盘控件的绘制宽度值和绘制高度值,并完成重新设置轮盘控件的宽高;
    S230、调用布局函数计算文字内容的显示位置及其行间距、文本控件的绘制位置、文本控件的绘制宽度值及高度值。
    下面对轮盘控件绘制过程作更进一步地说明,为了使用方便,将后续用到的名词定义进行说明:
    Width:轮盘控件的宽度;
    Height:轮盘控件的高度;
    lineNum:轮盘控件需要显示的行数;
    TextSize:内容文字大小;
    LeftPadding:轮盘控件左侧预留的宽度;
    RightPadding:轮盘控件右侧预留的宽度;
    TextWidth:输入的每行内容的宽度;
    TextHight:输入的每行内容的高度;
    ElementHeight:每行所占的高度;
    MaxTextWidth:所有行中实际可显示内容中,最长的内容所占宽度;
    w:轮盘控件每行实际可以显示的内容宽度;
    num:轮盘控件每行实际可以显示的内容文字数目;
    start:轮盘控件内容显示时,内容左侧相对轮盘控件左边框绘制的起始位置;
    TextViewLeftPadding:TextView文本控件的左侧预留宽度;
    TextViewRightPadding:TextView文本控件的右侧预留宽度。
    轮盘绘制需要的各项参数设置结束后,轮盘控件根据布局文件中的设置项及内容,在测算函数(继承自FrameLayout)中,计算自身的宽度大小,用以重新设置宽高;
    进一步地,当轮盘的宽度值设置为固定值时,若轮盘每行实际可显示的内容宽度大于或等于输入的每行内容宽度,则输入的内容可以完全显示,若轮盘控件每行实际可显示的内容宽度小于输入的内容宽度,则对输入的内容进行截取。
    当轮盘控件的宽度值设置为内容自适应时,检测所有内容行并确定最长内容的宽度,若最长内容的宽度大于或等于屏幕宽度时,轮盘控件的宽度设置为屏幕的宽度,若最长内容的宽度小于等于屏幕宽度时,轮盘控件的宽度设置为最长内容的宽度。
    其中,当文字内容的高度大于轮盘控件设置的高度值时,自动调整文字大小,使文字内容完整显示。
    具体实施例中,当应用将轮盘控件的宽度设置为固定数值时,例如100像素(px),每一行内容的长度可能不足100px,也可能比这个值要大,这需要根据内容长度进行设计,计算出需要绘制在界面的文字。如图4所示的轮盘控件布局效果图,通常为了布局美观,轮盘控件显示内容时,通常会将左右各预留一定的宽度再显示内容,当然预留的宽度大小可自行设置,不进行设置则默认预留宽度为0。
    轮盘控件每行实际可显示的内容宽度w为width – LeftPdding – RightPadding 。
    如果w >= TextWidth,则内容可以完全显示。
    如果w < TextWidth, 则内容不能完全显示。需要将内容截取,不能显示的部分用省略号“…”代替。计算方式为:
    “…”的宽度定义为SWidth;
    实际可以显示的文字数目num 为:当前行文字个数 * ((w – SWidth)/ TextWidth)+ 0.5;
    如果num <= 0, 则只显示“…”
    如果num > 3 ,则显示该行内容的前num个字再加上“…”。最终形成的效果如图4所示。
    当应用将轮盘控件的宽度设置为自适应内容时,需要根据内容最长的那一行来决定轮盘控件的宽度。因此,设置内容后,首先遍历内容行,将最长内容的宽度遍历计算出来,即MaxTextWidth。
    当所有内容行中,最长内容行的文字宽度MaxTextWidth超过屏幕的宽度时,控件的宽度设置为屏幕的最大宽度,即自适应内容的宽度大小不得超过屏幕的大小。
    当内容长度超过屏幕长度的时候,控件宽度即变成为固定数值(屏幕的宽度大小),可以采用如上计算显示内容的方式来完成显示。
    当所有内容行中,最长内容行的文字长度MaxTextWidth没有超过屏幕长度时:
    当MaxTextWidth+ LeftPadding +RightPadding >= 屏幕宽度时,控件的宽度width设置为屏幕的宽度;
    当MaxTextWidth + LeftPadding +RightPadding < 屏幕宽度时,控件宽度width设置为MaxTextWidth + LeftPadding +RightPadding。
    较佳实施例中,轮盘控件的内容位置是允许设定的,比如靠左显示,居中显示等。靠左显示只需要绘制时从leftpadding作为左侧绘制起始位置start即可。居中显示内容的左侧绘制起始位置start需要另行计算。
    设置内容为居中显示时,首先计算出所有行中最长内容所占的宽度。当该行内容宽度TextWidth + LeftPadding +RightPadding >= 屏幕宽度时,控件的宽度width设置为屏幕的宽度。内容宽度TextWidth  + LeftPadding +RightPadding < 屏幕宽度时,轮盘控件宽度width设置为TextWidth  + LeftPadding +RightPadding。
    轮盘控件每行实际可以显示的内容宽度w = width – LeftPdding – RightPadding 。
    当w > TextWidth,则内容可以完全显示。
    则该行内容绘制的起始位置start  = (w - TextWidth)/2 + LeftPadding;
    当w <= TextWidth时,start = LeftPadding;显示的内容如上所述,在此不再赘述。如图4所示即为居中显示的例子。
    较佳实施例中,内容之间的行距及行间距取决于用户设置当前屏需要显示的行数(lineNum)以及内容文字设置的大小(TextSize)。TextSize 与TextHeight(内容高度)相等。
    当TextHeight * lineNum >Height( 轮盘控件设置的高度)时,为避免内容在屏幕上绘制发生重叠,将自动调整文字大小,以适应内容的完整显示。如下:
    Height / lineNum,然后取整,就是TextSize。则设置提示用户自适应文字大小的数值。
    行间距 = (Height – lineNum * TextHeight) / (lineNum – 1);
    ElementHeight = TextHeight +行间距。
    较佳实施例中,内容设置为居中显示时,计算TextView绘制的左侧起始位置距离,首先需要计算出所有行中实际可显示内容中,最长的内容宽度MaxTextWidth。
    当w > MaxTextWidth时, TextView绘制的左侧起始位置相对轮盘控件左边框L为((w - MaxTextWidth)/2 + LeftPadding)/2; 右侧绘制结束位置距离轮盘控件右边框R为((w - MaxTextWidth)/2 + RightPadding)/2;
    当w <= MaxTextWidth或者内容设置为靠左显示时,TextView绘制的左侧起始位置相对轮盘控件左边框L为LeftPadding/2; 右侧绘制结束位置距离轮盘控件右边框R为RightPadding/2;
    因此,TextView的宽度 = w – L– R。
    关于行间距,TextView设置的位置是刚好将内容显示在TextView控件中央,并且TextView上下边缘各占一半的行间距。TextView的文字大小可自行设定,由于TextView的高度与轮盘控件每行所占到的高度可能不一致,因此需要重新计算:
    TextView的高度 = TextView的文字高度+行间距。
    进一步地,上述具体为:调用绘制函数根据绘制数据在屏幕上通过设置的相应画笔绘制轮盘控件,其中,当设置为可循环查看内容时,绘制到链表的第一个ID号对应的内容时,上一条内容将绘制最后一个ID号对应的内容;绘制到链表的最后一个ID号对应的内容时,下一条内容将绘制第一个ID号对应的内容。
    当设置为不可循环查看内容时,绘制到链表的第一个ID号对应的内容时,上一条内容为空,将不再继续绘制;绘制到链表的最后一个ID号对应的内容时,下一条内容为空,将不再绘制。
    如图5所示的较佳实施例中,所述步骤S400具体为:
    S410、接收用户滚动指令,检测该指令输入的滚动距离和滚动时间,并利用其计算出加速度值,进而计算出当前时间屏幕的y轴坐标,当前时间屏幕的y轴坐标与上一次获得的y轴坐标之差得出本次绘制的偏移量;
    S420、调用绘制函数清除当前轮盘控件中显示的内容,重新绘制显示内容时,每一行内容的y轴坐标都偏移所得出的偏移量的距离,且设置滚动时间内连续多次调用绘制函数绘制内容,形成内容滚动效果。
    本发明轮盘控件的滚动,是通过不断调用绘制函数,在屏幕上绘制内容实现的。绘制函数是重写的系统层绘制函数。当触发了滚动条件(手指滑动,鼠标滑轮滚动,上下键点击等等),根据本次滚动的总距离及滚动时间,计算出加速度(初速度为0)。
    根据公式:距离 = 1/2 * 加速度 *(时间的平方),可以获得特定时间屏幕的y轴坐标。当前的y轴坐标与上一次获得y轴坐标的差是一次绘制的偏移量offset。
    绘制函数绘制内容时,首先清除屏幕上的内容,然后将每一行内容的y轴坐标都偏移offset值的距离,即每一行内容的绘制位置偏移offset。 设定滚动时间内连续调用几次绘制函数绘制内容,在人眼看来就是连续不断的,因而形成了滚动效果。
    绘制函数是通过清除全部内容,然后再重新绘制的方式进行显示的,因此只需要绘制当前轮盘控件范围的内容,超出轮盘控件范围的内容已经超出可视范围,不进行绘制。这样的操作方式省略了一一回收子控件(元素)资源的步骤,也不需要为了浏览效果预加载内容,提高了操作效率,节约了内存。
    Offset值要进行累加计算。当累加的offset值大于两行之间的行间距,如果是往上滚动,则需要开始绘制下一条内容;如果是往下滚动,则需要开始绘制上一条内容。
    具体的,通过按键滚动时,每按一次键,滚动的总距离就是一个行距的距离;滚动时间为设定的固定时间,当连续按键或者快速滑动时,系统层会触发按键或滑动事件。连续按键时,系统层每触发一次按键,滚动的总距离就会增加一个行距,滚动时间也会进行累加;在偏移量累加达到这个总距离之前,屏幕滚动操作不会结束。如果滚动条件不停的触发时,因为加速度的缘故,速度会不停的增加。如果无限制的增加,用户体验度反而会下降,因此本发明预设一个运行的最高速度,保证用户体验度。
    显示内容可设置为循环查看(所查看的内容如图4所示:指控件最中间高亮显示的内容),当设置为循环查看时,当屏幕向下滚动查看内容对应链表的最后一ID号时,下一条内容即为链表的第一ID号对应存储的内容;相应的,当屏幕向上滚动查看内容对应链表的第一个ID号时,那么上一条内容就是链表的最后一个ID号对应存储的内容。
    当内容设置为不可循环查看时,向下滚动到最后一个ID号时,将不能继续滚动;向上滚动到第一个ID号时也将不能继续滚动。
    具体的滑动操作如图6所示,步骤如下:
    S1、开始。
    S2、获取用户操作/检测控件指令,判断操作类型。判断滑动方向,若向下操作执行S31,向上操作执行S41;
    S31、向下。即检测到向下滑动控件指令。
    S32、判断向下查看的内容是否为链表中最后一条内容,若否,则执行步骤S35,若是,则执行步骤S33.
    S33、内容是否循环显示。判断内容显示是否为可循环查看,若是,则执行步骤S34,若否,则执行步骤S5。
    S34、查看第一条内容。即下一条内容为链表中的顺序排第一的内容。
    S35、显示下一条内容。即按照链表顺序显示下一条内容。
    S5、结束。
    还可执行如下步骤:
    S41、向上。即检测到向上滑动控件指令。
    S42、判断向上查看的内容是否为链表中第一条内容。即判断向上滚动查看的内容是否为链表中第一条内容,若否,则执行步骤S45,若是,则执行步骤S43.
    S43、内容是否循环显示。判断内容显示是否为可循环查看,若是,则执行步骤S44,若否,则执行步骤S5。
    S44、查看最后一条内容。即下一条内容为链表中的顺序排最后的内容。S45、显示上一条内容。即按照链表顺序显示上一条内容。
    S5、结束。
    当结束触发滚动的条件,屏幕滚动结束时,屏幕上内容可能不处于一个设定的位置(以TextView控件位置做参考),本发明对内容文字在结束操作时设置如下操作,当内容已经滚动超过一行高度的一半,则设置继续滚动直到屏幕上内容处于设定位置;当内容滚动不超过一行高度的一半时,则设置滚动回滚,直至屏幕上内容处于设定位置。具体如下:
    偏移累加值 % 行距 >= 行距/2,继续滚动直到偏移累加值/行距 = 0;
    0< 偏移累加值 % 行距 < 行距/2,往回滚动直到偏移累加值/行距 = 0。(“%”指的是取余)
    较佳的是,在轮盘滚动设计时,预留动画接口,供应用自行设计,该动画用于在轮盘内容开始滚动及结束滚动时。比如,在开始滚动时,整个轮盘控件的内容逐渐压黑,然后开始内容滚动;在用户操作结束,轮盘控件内容结束滚动时,整个轮盘控件的内容逐渐变亮。
    如图7所示的一种图形界面轮盘控件的实现系统,其中,所述系统包括:
    设置模块100,用于在布局文件中布局一轮盘控件并进行内容输入和参数设置,具体如步骤S100所示。
    绘制数据计算模块200,用于调用测算函数和布局函数利用所输入的内容和设置的参数进行计算,得出轮盘控件各要素的绘制数据,具体如步骤S200所述。
    绘制模块300,用于调用绘制函数利用绘制数据绘制轮盘控件;以及用于接收用户滚动指令,根据滚动距离和滚动时间计算得出偏移量,调用绘制函数清除轮盘控件中所显示内容后根据所得出偏移量重新绘制轮盘控件的显示内容,具体如步骤S300和步骤S400所述。
    本发明提供一种图形界面轮盘控件的实现方法及系统,通过轮盘控件的实现应用中扩展了参数接口设置,提供了更为丰富的样式设置。并通过动态计算偏移量,调用系统层绘制函数连续绘制内容实现内容的平滑移动效果,而不通过现有封装的接口实现内容移动,减少应用代码冗余,避免浪费人力,提高了程序的执行效率,节约了系统资源。
    应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

    关 键  词:
    一种 图形界面 轮盘 控件 实现 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种图形界面轮盘控件的实现方法及系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6378574.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1