一种显示圆形布局界面的方法、装置和可穿戴设备与流程

文档序号:13861462阅读:701来源:国知局

本发明涉及计算机控制领域,具体涉及一种显示圆形布局界面的方法、装置和可穿戴设备。



背景技术:

目前,可穿戴设备(例如智能手表)的显示屏是圆形的,但智能手表操作系统上的软件界面布局显示却是方形的,例如,lggwatchr智能手表,如图1所示,lggwatchr的显示屏是圆形的,该手表上的应用在右滑退出的过程中,可以看到软件用户界面(userinterface,ui)的布局界面是方形的,方形的软件布局界面与圆形的显示屏很不协调,影响了智能手表的美观。



技术实现要素:

为了解决或至少部分地解决上述问题,本发明提供了一种显示圆形布局界面的方法、装置和可穿戴设备。

根据本发明的一个方面,提供了一种显示圆形布局界面的方法,所述方法包括:

获取待显示的布局界面;

基于所述圆形显示屏的半径对所述待显示的布局界面进行裁剪,生成所述待显示的布局界面的圆形布局界面;

将生成的圆形布局界面输出至所述圆形显示屏进行显示。

根据本发明的另一个方面,提供了另一种显示圆形布局界面的装置,所述装置包括:

待显示的布局界面获取单元,用于获取待显示的布局界面;

圆形布局界面生成单元,用于基于所述圆形显示屏的半径对所述待显示的布局界面进行裁剪,生成所述待显示的布局界面的圆形布局界面;

圆形布局界面显示单元,用于将生成的圆形布局界面输出至所述圆形显示屏进行显示。

根据本发明的再一个方面,提供了再一种显示圆形布局界面的装置,所述装置包括存储器和处理器,所述存储器存储有能够被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时能够实现上述的方法步骤。

根据本发明的又一个方面,提供了又一种可穿戴设备,其特征在于,所述可穿戴设备包括上述的显示圆形布局界面的装置。

本发明的有益效果是:本发明的技术方案,通过获取待显示的布局界面;基于圆形显示屏的半径对待显示的布局界面进行裁剪,生成待显示的布局界面的圆形布局界面;将生成的圆形布局界面输出至圆形显示屏进行显示,相比于现有技术中只能在圆形显示屏上显示方形布局界面,本发明实现了在圆形显示屏上显示圆形布局界面,使得软件布局界面与圆形显示屏的形状更加协调、美观,提升用户体验。

附图说明

图1是现有技术中圆形显示屏显示方形布局界面的示意图;

图2是本发明一个实施例的一种显示圆形布局界面的方法的流程图;

图3是本发明一个实施例的一种裁圆过程示意图;

图4是本发明一个实施例的另一种裁圆过程示意图;

图5是本发明一个实施例的一种显示圆形布局界面的装置的结构示意图;

图6是本发明一个实施例的另一种显示圆形布局界面的装置的结构示意图;

图7是本发明一个实施例的一种可穿戴设备的结构示意图。

具体实施方式

本发明的设计构思是:针对现有技术中只能在圆形显示屏上显示方形布局界面的问题,发明人想到,通过获取待显示的布局界面,基于圆形显示屏的半径对待显示的布局界面进行裁剪,生成待显示的布局界面的圆形布局界面;将生成的圆形布局界面输出至圆形显示屏进行显示,实现了在圆形显示屏上显示圆形布局界面,使得软件布局界面与圆形显示屏的形状更加协调、美观,提升用户体验。

实施例一

图2是本发明一个实施例的一种显示圆形布局界面的方法的流程图,如图2所示,

在步骤s210中,获取待显示的布局界面;

在步骤s220中,基于圆形显示屏的半径对待显示的布局界面进行裁剪,生成待显示的布局界面的圆形布局界面;

在步骤s230中,将生成的圆形布局界面输出至圆形显示屏进行显示。

通过图2所示的方法可知,本发明的技术方案,通过获取待显示的布局界面;基于圆形显示屏的半径对待显示的布局界面进行裁剪,生成待显示的布局界面的圆形布局界面;将生成的圆形布局界面输出至圆形显示屏进行显示,相比于现有技术中只能在圆形显示屏上显示方形布局界面,本发明实现了在圆形显示屏上显示圆形布局界面,使得软件布局界面与圆形显示屏的形状更加协调、美观,提升用户体验。

在本发明的实施例中,生成圆形的布局界面主要有以下两种方法:

第一种方法:如图3所示,在待显示的布局界面上,以待显示的布局界面的中心为原点,以圆形显示屏的半径为半径绘制圆形路径,裁剪掉待显示的布局界面上的圆形路径外的部分,生成待显示的布局界面的圆形布局界面。

需要说明的是,android的canvas类提供了clippath、cliprect、clipregion等方法来裁剪,通过path、rect、region的不同组合,android几乎可以支持任意现状的裁剪区域。所以要实现layout的裁圆只要在layout的绘制周期执行到ondraw的时候,利用clippath对canvas类做一个圆形的裁剪,即可实现layout的裁圆功能。

其具体的实现方法如下:

自定义一个customcirclelayout类,customcirclelayout类继承自待显示的布局界面的任一布局,这里的任一布局为自线性布局、相对布局、表格布局、框架布局和绝对布局中的任意一种。也就是说,待显示的布局界面是何种布局,则customcirclelayout类继承自何种布局。假设待显示的布局界面采用的表格布局,则customcirclelayout类继承自该表格布局。

修改customcirclelayout类中的ondraw(canvascanvas)函数,其中通过canvas.setdrawfilter()设置画笔抗锯齿,通过canvas.clippath()设置裁剪的圆形路径的半径为圆形显示屏的半径。

在实际应用中,其修改customcirclelayout类中的ondraw(canvascanvas)函数的具体实现程序为:

覆盖此customcirclelayout的ondraw(canvascanvas)方法,修改成如下:

上述第一种方法的优点在于实现简单、方便;其缺点在于,(1)手表的屏幕分辨率很小,只有400(w)*rgb*400(h)或者380(w)*rgb*380(h),在裁圆的过程中,即使设置了抗锯齿的优化,边缘的锯齿还是很明显,影响美观。(2)这种裁圆方法的功耗影响较大,在复杂的布局界面,会出现卡顿的情况。

第二种方法:如图4所示,生成一个半径为圆形显示屏的半径的圆形背景,将待显示的布局界面的中心与圆形背景的中心重合,裁剪掉待显示的布局界面上与圆形背景不重叠的部分,生成待显示的布局界面的圆形布局界面。

需要说明的是,第二种方法的实现原理是使用porterduffxfermode图像合成的方式来实现裁圆的效果。

在用android中的canvas进行绘图时,可以通过使用porterduffxfermode将所绘制的图形的像素与canvas中对应位置的像素按照一定规则进行混合,形成新的像素值,从而更新canvas中最终的像素颜色值。

porterduffxfermode支持以下十几种像素颜色的混合模式,分别为:clear、src、dst、src_over、dst_over、src_in、dst_in、src_out、dst_out、src_atop、dst_atop、xor、darken、lighten、multiply和screen。

poerterduffxfermode设置的是两个图层交集区域的显示方式,其中android.graphics.porterduff.mode.dst:只绘制目标图像(即圆形背景),android.graphics.porterduff.mode.src:只绘制源图像(即待显示的布局界面)。本方案中使用android.graphics.porterduff.mode.dst_in的混合模式,该混合模式只在源图像和目标图像相交的地方绘制目标图像(即只保留待显示的布局界面与圆形背景重合的部分,并裁剪掉待显示的布局界面上与圆形背景不重叠的部分),生成待显示的布局界面的圆形布局界面。

其具体的实现方法如下:

自定义一个customcirclelayout类,customcirclelayout类继承自待显示的布局界面的任一布局,这里的任一布局为自线性布局、相对布局、表格布局、框架布局和绝对布局中的任意一种。也就是说,待显示的布局界面是何种布局,则customcirclelayout类继承自何种布局。假设待显示的布局界面采用的线性布局,则customcirclelayout类继承自该线性布局。

在customcirclelayout类中构造一个setup函数,其中通过mmaskpaint=newpaint()初始化图像混合用到的画笔,通过mxfermode=newporterduffxfermode(mode.dst_in)设置画笔的绘制模式为dst_in;

修改customcirclelayout类中的dispatchdraw(canvascanvas)函数,其中通过canvas.setdrawfilter()设置画笔抗锯齿,通过canvas.drawbitmap(mmaskbitmap,0,0,mmaskpaint)生成一个半径为圆形显示屏的半径的圆形背景。

在实际应用中,上述方法的具体实现程序为:

在本发明的一个实施例中,利用bitmap函数绘制圆形背景,生成的圆形背景用于后期图像混合。需要说明的是,bitmap是android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。

利用bitmap函数绘制圆形背景具体实现如下:

在本发明的一个实施例中,覆盖此circlelayout的dispatchdraw函数,修改成如下:

publicvoiddispatchdraw(canvascanvas)

{

canvas.setdrawfilter(…);//设置画笔抗锯齿

canvas.drawbitmap(mmaskbitmap,0,0,mmaskpaint);//绘制圆形背景图层;

canvas.restoretocount(…);//回到任何一个save()方法调用之前的状态

}

第二种方法的优点在于,实现过程相对简单、执行效率较高、抗锯齿效果非常明显,显示的界面更加美观。其缺点在于,需要设置layouttype属性为layer_type_hardware。硬件加速可以极大的优化多数应用程序,但它并不是每个应用程序的最优选择。

综合对比上述两种方法:因为第二种方法在裁圆过程中的抗锯齿效果和性能等表现更加出色,同时对应用开发的限制也较少,所以最终选择第二种方法,但是在实际应用中,用户可以根据实际需要选择任意一种方法进行裁圆。

在发明的一个实施例中,对待显示的布局界面做边缘化处理,避免view子元素被显示屏遮挡。

需要说明的是,利用本申请请求保护的方法可以生成多级圆形布局界面,每两个相邻级别的圆形布局界面之间设置有渐变透明遮罩层,此遮罩层在用户操作右滑退出的过程中慢慢变得越来越透明,实现了每两个相邻级别的界面柔滑过渡的效果,整个操作过程非常柔顺丝滑,加强用户体验。

实施例二

图5是本发明一个实施例的一种显示圆形布局界面的装置的结构示意图,如图5所示,装置500包括:

获取单元510,用于获取待显示的布局界面;

生成单元520,用于基于圆形显示屏的半径对待显示的布局界面进行裁剪,生成待显示的布局界面的圆形布局界面;

显示单元530,用于将生成的圆形布局界面输出至圆形显示屏进行显示。

在本发明的一个实施例中,生成单元520,具体用于在待显示的布局界面上,以待显示的布局界面的中心为原点,以圆形显示屏的半径为半径绘制圆形路径,裁剪掉待显示的布局界面上的圆形路径外的部分,生成待显示的布局界面的圆形布局界面。

在本发明的一个实施例中,生成单元520,具体用于生成一个半径为圆形显示屏的半径的圆形背景,将待显示的布局界面的中心与圆形背景的中心重合,裁剪掉待显示的布局界面上与圆形背景不重叠的部分,生成待显示的布局界面的圆形布局界面。

需要说明的是,本实施例中请求保护的显示圆形布局界面的装置500的工作过程与图2所示的方法的各实施例的实现步骤对应相同,相同的部分不再赘述。

实施例三

图6是本发明一个实施例的另一种显示圆形布局界面的装置的结构示意图,如图6所示,装置600包括存储器620和处理器610,存储器620存储有能够被处理器610执行的计算机程序,计算机程序被处理器610执行时能够实现如图2所示的方法步骤。

存储器620和处理器610之间通过内部总线630通讯连接,在本发明的一个实施例中,存储器620存储的是显示圆形布局界面的计算机程序621。该显示圆形布局界面的计算机程序621被处理器610执行时能够实现如图2所示的方法步骤。

在不同的实施例中,存储器620可以是内存或者非易失性存储器。其中非易失性存储器可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。内存可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存。进一步,非易失性存储器和内存作为机器可读存储介质,其上可存储由处理器610执行的显示圆形布局界面的计算机程序621。

需要说明的是,本实施例中请求保护的显示圆形布局界面的装置600的工作过程与图2所示的方法的各实施例的实现步骤对应相同,相同的部分不再赘述。

实施例四

图7是本发明一个实施例的一种可穿戴设备的结构示意图,如图7所示,可穿戴设备包括如图5所示的显示圆形布局界面的装置500或者如图6所示的显示圆形布局界面的装置600。

在本发明的一个实施例中,可穿戴设备可以为智能手环和智能手表等。

综上所述,本发明的技术方案,通过获取待显示的布局界面;基于圆形显示屏的半径对待显示的布局界面进行裁剪,生成待显示的布局界面的圆形布局界面;将生成的圆形布局界面输出至圆形显示屏进行显示,相比于现有技术中只能在圆形显示屏上显示方形布局界面,本发明实现了在圆形显示屏上显示圆形布局界面,使得软件布局界面与圆形显示屏的形状更加协调、美观,提升用户体验。

以上,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。

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