用户界面从右到左rtl的布局方式的实现方法及装置的制造方法

文档序号:10724575阅读:151来源:国知局
用户界面从右到左rtl的布局方式的实现方法及装置的制造方法
【专利摘要】本发明提供一种用户界面从右到左RTL的布局方式的实现方法及装置。本发明用户界面从右到左RTL的布局方式的实现方法,包括:获取待显示的用户界面中的所有元素;将所述元素中的字符串进行倒序排列,并将倒序排列后的字符串转换成图片;将所述图片以及所述元素中的原始图片进行水平翻转;将包含处理后的所有元素的画布Canvas进行水平翻转得到翻转后的用户界面;显示所述翻转后的用户界面。本发明实现了RTL功能,而且没有增加开发工作量,并且不会造成整体UI刷新性能的明显消耗。
【专利说明】
用户界面从右到左RTL的布局方式的实现方法及装置
技术领域
[0001]本发明涉及智能电视技术领域,尤其涉及一种用户界面从右到左RTL的布局方式 的实现方法及装置。
【背景技术】
[0002] 随着超文本标记语言(HyperText Markup Language,简称HTML)5标准的发展,在 智能电视的用户界面(User Interface,简称UI)领域,越来越多的厂商开始采用基于HTML5 标准的网页UI开发模式。HTML5标准的绘图功能是通过画布(Canvas)实现的,如果网页中包 含一个Canvas标签,就可以通过客户端脚本语言(JavaScript)代码在这个标签的区域范围 内,使用Canvas的绘图应用程序编程接口(Application Programming Interface,简称 API)绘制UI中的元素。
[0003] 图1为从左到右的布局方式的用户界面示意图一。图2为从右到左RTL的布局方式 的用户界面示意图。目前,通过Canvas绘制的UI,通常是从左向右布局排列的UI,如图1所 示。而在面向阿拉伯语等从右向左阅读方式国家的智能电视中,需要实现从右向左(Right-To-Left,简称RTL)的布局方式的UI,如图2所示。在从左向右布局排列的基础上,实现RTL的 布局方式具有一定的难度,在实现本发明的过程中,发明人经过研究发现可能的实现方式 有以下两种:1、配置专用坐标文件;具体的,在UI开发中专门为RTL功能配置一套坐标文件, 根据用户的选择,读取相应的坐标配置。这种方式能够实现RTL功能,但产生了额外的开发 工作量,即每个UI界面除了需要配置LTR对应的坐标文件,还需要配置RTL对应的坐标文件, 即需要配置两套坐标文件。2、实时控制元素坐标。具体的,在UI刷新时,实时根据整个UI界 面或元素容器的宽度,计算并变换元素的坐标。此方式虽然对于UI的开发没有产生额外的 工作量,但在UI每帧刷新过程中,需要进行复杂的坐标计算,会带来额外的性能开销,在复 杂的场景可能会造成UI的卡顿,影响用户体验。
[0004] 因此,在尽量减少系统资源消耗,并减少开发工作量的情况下,通过Canvas实现 RTL的布局方式是本领域技术人员亟需解决的技术问题。

【发明内容】

[0005] 本发明提供一种用户界面从右到左RTL的布局方式的实现方法及装置,以实现RTL 的布局方式。
[0006] 第一方面,本发明提供一种基于Canvas开发的用户界面中从右到左RTL的布局方 式的实现方法,包括:
[0007] 获取待显示的用户界面中的所有元素;
[0008] 将所述元素中的字符串进行倒序排列,并将倒序排列后的字符串转换成图片;
[0009] 将所述图片以及所述元素中的原始图片进行水平翻转;
[0010] 将包含处理后的所有元素的画布Canvass进行水平翻转得到翻转后的用户界面;
[0011] 显示所述翻转后的用户界面。
[0012] 可选的,作为一种可实施的方式,将倒序排列后的字符串转换成图片,包括:
[0013] 将所述倒序排列后的字符串绘制到所述Canvas中的临时Canvas中,生成所述图 片。
[0014] 可选的,作为一种可实施的方式,将所述图片以及所述元素中的原始图片进行水 平翻转,包括:
[0015] 将所述Canvas进行水平翻转得到翻转后的Canvas;
[0016] 在所述翻转后的Canvas上绘制所述图片和所述原始图片;
[0017] 将所述翻转后的Canvas再次水平翻转。
[0018] 可选的,作为一种可实施的方式,在所述翻转后的Canvas上绘制所述图片和所述 原始图片,包括:
[0019] 通过所述Canvas的绘图应用程序编程接口 API在所述翻转后的Canvas上绘制所述 图片和所述原始图片。
[0020] 第二方面,本发明提供一种基于Canvas开发的用户界面中从右到左RTL的布局方 式的实现装置,包括:
[0021] 获取模块,用于获取待显示的用户界面中的所有元素;
[0022] 处理模块,用于将所述元素中的字符串进行倒序排列,并将倒序排列后的字符串 转换成图片;
[0023] 所述处理模块,还用于将所述图片以及所述元素中的原始图片进行水平翻转; [0024]所述处理模块,还用于将包含处理后的所有元素的画布Canvas进行水平翻转得到 翻转后的用户界面;
[0025]显示模块,用于显示所述翻转后的用户界面。
[0026] 可选的,作为一种可实施的方式,所述处理模块,具体用于:
[0027] 将所述倒序排列后的字符串绘制到所述Canvas中的临时Canvas中,生成所述图 片。
[0028] 可选的,作为一种可实施的方式,所述处理模块,具体用于:
[0029] 将所述Canvas进行水平翻转得到翻转后的Canvas;
[0030] 在所述翻转后的Canvas上绘制所述图片和所述原始图片;
[0031] 将所述翻转后的Canvas再次水平翻转。
[0032] 可选的,作为一种可实施的方式,所述处理模块,具体用于:
[0033] 通过所述Canvas的绘图应用程序编程接口 API在所述翻转后的Canvas上绘制所述 图片和所述原始图片。
[0034] 本发明用户界面从右到左RTL的布局方式的实现方法及装置,通过获取待显示的 用户界面中的所有元素;将元素中的字符串进行倒序排列,并将倒序排列后的字符串转换 成图片;将图片以及元素中的原始图片进行水平翻转;将处理后的所有元素绘制在画布 Canvas中,并将Canvas进行水平翻转得到翻转后的用户界面;显示所述翻转后的用户界面, 实现了 RTL功能,而且本发明是按照正常UI布局方式(即从左到右)来配置坐标,而不用配置 任何额外的坐标文件,而且该方法是在UI逻辑处理完毕,需要绘制到屏幕时执行的,因此没 有增加开发人员开发过程中的工作量,进一步的,由于在刷新每一帧时,并没有进行大量的 坐标计算,而仅仅是通过将字符串倒序排列以及图片翻转处理实现了从右到左的布局方 式,不会造成整体UI刷新性能的明显消耗,因此可以给用户提供更流畅的体验。
【附图说明】
[0035] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
[0036] 图1为从左到右的布局方式的用户界面示意图一;
[0037]图2为从右到左RTL的布局方式的用户界面示意图;
[0038]图3为本发明用户界面从右到左RTL的布局方式的实现方法一实施例的流程示意 图;
[0039] 图4A为本发明一实施例中字符串倒序示意图;
[0040] 图4B为本发明一实施例中将字符串生成的图片进行水平翻转示意图;
[0041] 图4C为本发明一实施例中将原始图片进行水平翻转示意图;
[0042] 图5为从左到右的布局方式的用户界面示意图二;
[0043]图6为本发明用户界面从右到左RTL的布局方式的实现装置一实施例的结构示意 图;
[0044] 图7为本发明终端一实施例的结构示意图。
【具体实施方式】
[0045] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046] Canvas是HTML5标准中一个新的标签,它提供的绘图API能够直接调用GPU资源,实 现图像绘制的硬件加速,大幅提高网页的图像处理性能。Canvas是逐像素刷新的,相当于一 个可以用JavaScript操作的位图,HTML文档对象模型(Document Object Model,简称D0M) 和层叠样式表(CascadingStyle Sheets,简称CSS)等布局管理和控制的机制并不适用于 Canvas,所以Canvas UI布局没有可用的布局管理机制,也不能直接使用CSS的方向 (direct ion)属性。Canvas的布局方式是基于坐标实现的,常规情况下的UI是从左向右 (Left-To-Right,简称LTR)布局排列的,通过Canvas绘制UI时,根据坐标确定UI中元素的位 置,然后进行绘制,在LTR的基础上,实现RTL的布局方式具有一定的难度,在实现本发明的 过程中,发明人经过研究发现可能的实现方式有以下两种:
[0047] 1、配置专用坐标文件;
[0048]具体的,在UI开发中专门为RTL功能配置一套坐标文件,根据用户的选择,读取相 应的坐标配置。这种方式能够实现RTL功能,但产生了额外的开发工作量,即每个UI界面除 了需要配置LTR对应的坐标文件,还需要配置RTL对应的坐标文件,即需要配置两套坐标文 件。
[0049] 2、实时控制元素坐标。
[0050] 具体的,这种方式不需要配置两套坐标文件,而是在UI刷新时,实时根据整个UI界 面或元素容器的宽度,计算并变换元素的坐标。此方式虽然对于UI的开发没有产生额外的 工作量,但在UI每帧刷新过程中,需要进行复杂的坐标计算,会带来额外的性能开销,在复 杂的场景可能会造成UI的卡顿,影响用户体验。
[0051] 本发明实施例的方法可以应用于智能终端设备中,包括但不限于智能电视、智能 手机等智能终端设备,以下实施例中仅以智能电视进行举例说明。
[0052] 下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施 例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0053]图3为本发明用户界面从右到左RTL的布局方式的实现方法一实施例的流程示意 图。如图3所示,本实施例的方法,包括:
[0054]步骤301、获取待显示的用户界面中的所有元素;
[0055] 步骤302、将所述元素中的字符串进行倒序排列,并将倒序排列后的字符串转换成 图片;
[0056] 步骤303、将所述图片以及所述元素中的原始图片进行水平翻转;
[0057] 步骤304、将包含处理后的所有元素的画布(Canvas)进行水平翻转得到翻转后的 用户界面;
[0058] 步骤305、显示所述翻转后的用户界面。
[0059]具体的,通常从左向右布局排列的UI,如图1所示。在UI主界面绘制元素时,从UI主 界面的起始点坐标(〇,〇)开始向X方向和Y方向分别延伸,图1中UI主界面的像素为1080 X 1920,在UI主界面的元素容器中绘制了图片元素和文字元素。
[0000] 本发明实施例中在UI需要刷新,通过Canvas绘制整个用户界面时,首先需遍历用 户界面中所有元素。
[0061] 图4A为本发明一实施例中字符串倒序示意图。如果该元素是文字元素,则将文字 元素组成的字符串进行字符串倒序排列,如图4A所示。
[0062] 在实际应用中,字符串倒序排列可以是,通过将字符串中第i个字符和第η-i + l个 字符进行交换,生成倒序排列后的字符串;i取值为1到[n/21 m为字符串的字符个数T 1 表示上取整。
[0063] 将倒序排列后的字符串转换成图片;字符串包括至少两个文字元素,文字元素可 以包括字母、数字、符号等。
[0064]图4B为本发明一实施例中将字符串生成的图片进行水平翻转示意图。图4C为本发 明一实施例中将原始图片进行水平翻转示意图。然后将字符串转换的图片和用户界面中的 原始图片,进行水平翻转,如图4B和4C所示。
[0065]图5为从左到右的布局方式的用户界面示意图二。包含处理后的所有元素的画布 Canvas如图5所示,然后将所述Canvas进行水平翻转得到翻转后的用户界面并显示,最终的 用户界面如图2所示。
[0066] 具体的,将所述Canvas进行水平翻转,可以利用Canvas提供的API,改变Canvas的 scale状态,将其设置为-1,则实现水平翻转效果。
[0067] 不例代码如下:ctx即Canvas的上下文对象,drawlmage、translate、scale等是 Canvas 提供的 API。
[0068] ctx · translate(canvas_width,0); //canvas_width表不Canvas的宽度;
[0069] ctx.scale(-l,1);
[0070] 正常绘制可以通过如下函数实现:
[0071 ] ctx.drawlmage(img,px,py) ;//img表示图片对象,px表示绘制的起始点的X坐标, py表示绘制的起始点的y坐标。
[0072] 本发明实施例的方法,仅按正常UI布局方式(即从左到右)来配置坐标,而不用配 置任何额外的坐标文件,而且该方法是在UI逻辑处理完毕,需要绘制到屏幕时执行的,因此 没有增加开发人员开发过程中的工作量;
[0073]由于HTML Canvas是逐像素一帧一帧刷新的,在刷新每一帧时,并没有进行大量的 坐标计算,而仅仅是通过将字符串倒序排列以及图片翻转处理实现了从右到左的布局方 式,不会造成整体UI刷新性能的明显消耗。
[0074] 进一步的,在有动画的应用场景下,由于在显示时对整个Canvas进行水平翻转,因 此动画效果也是按照RTL模式从右侧渐入的。
[0075]本实施例提供的用户界面中从右到左RTL的布局方式的实现方法,获取待显示的 用户界面中的所有元素;将元素中的字符串进行倒序排列,并将倒序排列后的字符串转换 成图片;将图片以及元素中的原始图片进行水平翻转;将处理后的所有元素绘制在画布 Canvas中,并将Canvas进行水平翻转得到翻转后的用户界面;显示所述翻转后的用户界面, 实现了 RTL功能,而且本发明是按照正常UI布局方式(即从左到右)来配置坐标,而不用配置 任何额外的坐标文件,而且该方法是在UI逻辑处理完毕,需要绘制到屏幕时执行的,因此没 有增加开发人员开发过程中的工作量,进一步的,由于在刷新每一帧时,并没有进行大量的 坐标计算,而仅仅是通过将字符串倒序排列以及图片翻转处理实现了从右到左的布局方 式,不会造成整体UI刷新性能的明显消耗,因此可以给用户提供更流畅的体验。
[0076]在上述实施例的基础上,本实施例中,步骤302中将倒序排列后的字符串转换成图 片具体可以通过如下方式实现:
[0077] 将倒序排列后的字符串绘制到Canvas中的临时Canvas中,生成图片。
[0078] 具体的,上述实现方式是利用Canvas可以将另一个Canvas绘制到该Canvas中的特 性实现的,具体如下:
[0079] 1、先创建一个离屏临时Canvas(在内存中,不会显示在界面上),其大小和字符串 的大小一致;
[0080] var cacheCanvas=document.createElement('canvas');
[0081 ] cacheCanvas .width = txt .width;//cacheCanvas .width为临时Canvas的宽度, txt. width为字符串的宽度;
[0082] cacheCanvas · height = txt · height; //cacheCanvas · height 临时Canvas 的高度, txt. height为字符串的高度;
[0083] 2、调用临时Canvas的API将字符串绘制到临时Canvas中。
[0084] var ctx = cacheCanvas·getContext("2cT);
[0085] ctx.fillText(txt,0,0)//txt表示文字元素,(0,0)表示绘制的起始点的坐标。
[0086] 3、这时字符串相当于已经转换为图片,可以将临时Canvas绘制到Canvas中。
[0087] 具体可以通过如下的函数实现:
[0088] mainCtx.drawImage(cacheCanvas,0,0)〇
[0089]在上述实施例的基础上,进一步的,步骤303具体可以通过如下方式实现:
[0090] 将所述Canvas进行水平翻转得到翻转后的Canvas;
[0091 ]在所述翻转后的Canvas上绘制所述图片和所述原始图片;
[0092]将所述翻转后的Canvas再次水平翻转。
[0093] 具体的,想要水平翻转图片可以通过以下步骤实现:
[0094] 1.水平"翻转"画布;
[0095] ctx · translate(canvas_width,0);//将画布的原点(0,0)从左上角定位到右上 角;
[0096] ctx.scale(-l,l);//将画布的水平方向scale设置为-1,垂直方向不变,相当于将 画布整个水平翻转;
[0097] 2、调用draw Image绘制图片,将图片绘制到已翻转的画布上;
[0098] ctx· drawlmage(img,canvas_width_img·width-px,py);//其坐标参数因为已经 将画布原点从左上角定位到右上角,所以需要转换一下,保证图片还是绘制在原来的位置 上。
[0099] 3、再将画布的原点从右上角再定位到左上角,并将画布再次水平翻转。
[0100] ctx.translate(canvas_width,0);
[0101] ctx.scale(-l,1);
[0102] 上述过程,图片是绘制在水平翻转的画布上,再次翻转画布后,相当于画布恢复了 原样,但是图片已经被水平翻转了。
[0103] 在上述实施例的基础上,进一步的,在所述翻转后的Canvas上绘制所述图片和所 述原始图片具体可以通过如下方式实现:
[0104] 通过所述Canvas的绘图API在所述翻转后的Canvas上绘制所述图片和所述原始图 片。
[0105] 具体的,由于Canvas提供了绘图API,因此可以通过绘图API将处理后的所有元素 绘制在画布Canvas中,具体是通过JavaScript代码调用绘图API进行绘制。
[0106] 例如,(^.(1抑¥111^6(;[11^撕必);//;[11^表示图片对象收表示绘制的起始点的1 坐标,py表示绘制的起始点的y坐标。
[0107] 图6为本发明用户界面从右到左RTL的布局方式的实现装置的一实施例的结构示 意图。如图6所示,本实施例的用户界面中从右到左RTL的布局方式的实现装置,包括:
[0108] 获取模块601、处理模块602和显示模块603;
[0109] 其中,获取模块601,用于获取待显示的用户界面中的所有元素;
[0110] 处理模块602,用于将所述元素中的字符串进行倒序排列,并将倒序排列后的字符 串转换成图片;
[0111] 所述处理模块602,还用于将所述图片以及所述元素中的原始图片进行水平翻转;
[0112] 所述处理模块602,还用于将包含处理后的所有元素的画布Canvas进行水平翻转 得到翻转后的用户界面;
[0113]显示模块603,用于显示所述翻转后的用户界面。
[0114]具体的,在UI需要刷新,通过Canvas绘制整个用户界面时,首先获取模块601需遍 历用户界面中所有元素。
[0115] 如果该元素是文字元素,则处理模块602将文字元素组成的字符串进行字符串倒 序排列,如图4A所示。
[0116] 在实际应用中,字符串倒序排列可以是,通过将字符串中第i个字符和第η-i + l个 字符进行交换,生成倒序排列后的字符串;i取值为1到为字符串的字符个数;f 1: 表示上取整。
[0117]处理模块602将倒序排列后的字符串转换成图片;字符串包括至少两个文字元素, 文字元素可以包括字母、数字、符号等。
[0118]然后处理模块602将字符串转换的图片和用户界面中的原始图片,进行水平翻转, 如图4B和4C所示。
[0119] 包含处理后的所有元素的画布Canvas如图5所示,然后处理模块602将所述Canvas 进行水平翻转得到翻转后的用户界面并通过显示模块603显示,最终的用户界面如图2所 不。
[0120] 具体的,将所述Canvas进行水平翻转,可以利用Canvas提供的API,改变Canvas的 scale状态,将其设置为-1,则实现水平翻转效果。
[0121 ] 不例代码如下:ctx即Canvas的上下文对象,drawlmage、translate、scale等是 Canvas 提供的 API。
[0122] ctx · translate(canvas_width,0); //canvas_width表不Canvas的宽度;
[0123] ctx.scale(-l,1);
[0124] 正常绘制可以通过如下函数实现:
[0125] ctx · drawlmage (img,px,py); //img表示图片对象,px表示绘制的起始点的X坐标, py表示绘制的起始点的y坐标。
[0126] 本发明实施例的装置中,仅按正常UI布局方式(即从左到右)来配置坐标,而不用 配置任何额外的坐标文件,而且该方法是在UI逻辑处理完毕,需要绘制到屏幕时执行的,因 此没有增加开发人员开发过程中的工作量;
[0127] 由于HTML Canvas是逐像素一帧一帧刷新的,在刷新每一帧时,并没有进行大量的 坐标计算,而仅仅是通过将字符串倒序排列以及图片翻转处理实现了从右到左的布局方 式,不会造成整体UI刷新性能的明显消耗。
[0128] 进一步的,在有动画的应用场景下,由于在显示时对整个Canvas进行水平翻转,因 此动画效果也是按照RTL模式从右侧渐入的。
[0129] 本实施例提供的用户界面中从右到左RTL的布局方式的实现装置,实现了 RTL功 能,而且本发明是按照正常UI布局方式(即从左到右)来配置坐标,而不用配置任何额外的 坐标文件,而且该方法是在UI逻辑处理完毕,需要绘制到屏幕时执行的,因此没有增加开发 人员开发过程中的工作量,进一步的,由于在刷新每一帧时,并没有进行大量的坐标计算, 而仅仅是通过将字符串倒序排列以及图片翻转处理实现了从右到左的布局方式,不会造成 整体UI刷新性能的明显消耗,因此可以给用户提供更流畅的体验。
[0130] 可选的,作为一种可实施的方式,所述处理模块602,具体用于:
[0131 ]将所述倒序排列后的字符串绘制到所述Canvas中的临时Canvas中,生成所述图 片。
[0132] 可选的,作为一种可实施的方式,所述处理模块602,具体用于:
[0133] 将所述Canvas进行水平翻转得到翻转后的Canvas;
[0134] 在所述翻转后的Canvas上绘制所述图片和所述原始图片;
[0135] 将所述翻转后的Canvas再次水平翻转。
[0136] 可选的,作为一种可实施的方式,所述处理模块602,具体用于:
[0137] 通过所述Canvas的绘图API在所述翻转后的Canvas上绘制所述图片和所述原始图 片。
[0138] 本实施例的装置,可以用于执行如图3所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0139] 图7为本发明终端一实施例的结构示意图。如图7所示,本实施例的终端,可以包 括:存储器701、处理器702和显示器703;其中,存储器701,用于存储程序;具体地,程序可以 包括程序代码,所述程序代码包括计算机操作指令。存储器701可能包含随机存取存储器 (random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0140]处理器702,用于执行存储器701存储的程序,用于执行本发明法实施例所提供的 技术方案,其实现原理和技术效果类似,可参考图3所示的方法实施例,此处不再赘述。
[0141] 显示器703,用于显示用户界面;
[0142] 上述装置中获取模块和处理模块的功能可以通过处理器702实现;
[0143] 上述装置中显示模块的功能可以通过显示器703实现。
[0144] 上述部件通过一条或多条总线进行通信。本领域技术人员可以理解,图7中示出的 终端的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以 包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0145] 需要说明的是,对于终端实施例而言,由于其基本相应于方法实施例,所以相关之 处参见方法实施例的部分说明即可。
[0146] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其 它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或模块的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦 合或通信连接,可以是电性,机械或其它的形式。
[0147] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显 示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目 的。
[0148] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光 盘等各种可以存储程序代码的介质。
[0149] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依 然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进 行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术 方案的范围。
【主权项】
1. 一种基于Canvas开发的用户界面从右到左RTL的布局方式的实现方法,其特征在于, 包括: 获取待显示的用户界面中的所有元素; 将所述元素中的字符串进行倒序排列,并将倒序排列后的字符串转换成图片; 将所述图片以及所述元素中的原始图片进行水平翻转; 将包含处理后的所有元素的画布Canvas进行水平翻转得到翻转后的用户界面; 显示所述翻转后的用户界面。2. 根据权利要求1所述的方法,其特征在于,将倒序排列后的字符串转换成图片,包括: 将所述倒序排列后的字符串绘制到所述Canvas中的临时Canvas中,生成所述图片。3. 根据权利要求1或2所述的方法,其特征在于,将所述图片以及所述元素中的原始图 片进行水平翻转,包括: 将所述Canvas进行水平翻转得到翻转后的Canvas; 在所述翻转后的Canvas上绘制所述图片和所述原始图片; 将所述翻转后的Canvas再次水平翻转。4. 根据权利要求3所述的方法,其特征在于,在所述翻转后的Canvas上绘制所述图片和 所述原始图片,包括: 通过所述Canvas的绘图应用程序编程接口 API在所述翻转后的Canvas上绘制所述图片 和所述原始图片。5. -种基于Canvas开发的用户界面从右到左RTL的布局方式的实现装置,其特征在于, 包括: 获取模块,用于获取待显示的用户界面中的所有元素; 处理模块,用于将所述元素中的字符串进行倒序排列,并将倒序排列后的字符串转换 成图片; 所述处理模块,还用于将所述图片以及所述元素中的原始图片进行水平翻转; 所述处理模块,还用于将包含处理后的所有元素的画布Canvass进行水平翻转得到翻 转后的用户界面; 显示模块,用于显示所述翻转后的用户界面。6. 根据权利要求5所述的装置,其特征在于,所述处理模块,具体用于: 将所述倒序排列后的字符串绘制到所述Canvas中的临时Canvas中,生成所述图片。7. 根据权利要求5或6所述的装置,其特征在于,所述处理模块,具体用于: 将所述Canvas进行水平翻转得到翻转后的Canvas; 在所述翻转后的Canvas上绘制所述图片和所述原始图片; 将所述翻转后的Canvas再次水平翻转。8. 根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于: 通过所述Canvas的绘图应用程序编程接口 API在所述翻转后的Canvas上绘制所述图片 和所述原始图片。
【文档编号】G06F9/44GK106095437SQ201610407205
【公开日】2016年11月9日
【申请日】2016年6月12日
【发明人】曹通, 仲维
【申请人】青岛海信电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1