CN117149200B - 一种安卓端的界面网格绘制方法、装置、设备及存储介质 - Google Patents
一种安卓端的界面网格绘制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117149200B CN117149200B CN202311424186.9A CN202311424186A CN117149200B CN 117149200 B CN117149200 B CN 117149200B CN 202311424186 A CN202311424186 A CN 202311424186A CN 117149200 B CN117149200 B CN 117149200B
- Authority
- CN
- China
- Prior art keywords
- intersection point
- line segment
- interface
- grid
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000011218 segmentation Effects 0.000 claims abstract description 65
- 239000003607 modifier Substances 0.000 claims description 84
- 239000002131 composite material Substances 0.000 claims description 13
- 238000009877 rendering Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009191 jumping Effects 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 150000001875 compounds Chemical class 0.000 description 5
- 238000000429 assembly Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 125000006850 spacer group Chemical group 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Abstract
本发明属于界面显示技术领域,提供一种安卓端的界面网格绘制方法、装置、设备及存储介质,所述方法包括:接收界面网格布局指令,界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征;基于界面尺寸确定边框线段的第一绘制参数,边框线段对应于界面的横向边框线、纵向边框线;基于所述界面尺寸、线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,分割线段在横向或者纵向等分界面;根据所述第一绘制参数绘制所述边框线段;根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段。通过本发明可实现安卓界面网格的各种不同布局模式,避免了复杂逻辑判断,易于界面的网格布局模式的后续维护,通用性强。
Description
技术领域
本发明涉及界面网格绘制技术领域,尤其涉及一种安卓端的界面网格绘制方法、装置、设备及存储介质。
背景技术
现有的安卓移动终端或安卓计算机终端的界面可显示控制多个场景,需要将界面划分为多个区域,每个区域显示不同场景内容。传统的XML体系中,可以通过线性布局实现,但这种方式不支持绘制界面网格的外边框和分割线。开发者如需绘制界面网格的外边框和分割线,可以在Compose UI体系中,通过向子组件增加边框属性完成绘制,也可以通过继承并重写组件的视图函数,在视图函数中引入一定的算法,进行手动绘制。然而,通过向子组件增加边框属性完成绘制方法会使相邻的两个组件的边框重合,导致视觉上分割线变粗(如图2所示);采用视图函数进行手动绘制方法,需要对每一种布局分别做出判断,且每增加一种网格方案,就要在原有基础上增加重复的代码(如图3所示),会使得开发陷入逻辑地狱,易错且不易于维护。
发明内容
本发明提供一种安卓端的界面网格绘制方法、装置、设备及存储介质,用以解决传统界面网格绘制方法影响视觉效果或需要多次判断、易错且不易于维护的缺陷。
本发明提供一种安卓端的界面网格绘制方法,包括:
接收界面网格布局指令,所述界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征;
基于界面尺寸确定边框线段的第一绘制参数,所述边框线段对应于界面的横向边框线、纵向边框线;
基于所述界面尺寸、所述线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,所述分割线段在横向或者纵向等分界面;
根据所述第一绘制参数绘制所述边框线段;
根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段。
可选的,所述基于所述界面尺寸、所述线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,包括:
根据线段位的位数信息、线段方向信息确定界面横向、纵向等分信息,所述线段特征包括所述线段位的位数信息、线段方向信息;
根据所述界面尺寸、所述等分信息确定界面上的交叉点位置;
根据所述线段交叉点特征配置所述交叉点;
根据配置后的所述交叉点确定所述分割线段的所述第二绘制参数。
可选的,所述根据所述第一绘制参数绘制所述边框线段,包括:
将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制。
可选的,在将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制之前,该方法还包括:
设置所述边框线段的颜色属性信息和粗细度属性信息;
相应地,所述将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制,包括:利用所述边框绘制修饰符根据所述颜色属性信息和所述粗细度属性信息对所述边框线段进行修饰。
可选的,所述根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,包括:
将所述第二绘制参数组合所述内容绘制修饰符,进行所述分割线段的绘制,所述内容绘制修饰符提供内容绘制域。
可选的,所述将所述第二绘制参数组合所述内容绘制修饰符,进行所述分割线段的绘制,包括:
通过所述内容绘制修饰符获取所述内容绘制域的尺寸、绘制工具;
基于所述内容绘制域的尺寸确定所述分割线段的长度和所述分割线段的粗细度;
利用所述绘制工具根据所述分割线段的长度和所述分割线段的粗细度绘制所述分割线段。
可选的,所述分割线段与所述边框线段的颜色属性信息设置一致;所述分割线段与所述边框线段的粗细度属性信息设置一致。
可选的,所述方法还包括:
选择第一起始交叉点,以所述第一起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第一截止交叉点,以所述第一起始交叉点和所述第一截止交叉点构建第一对角线,并根据所述第一对角线绘制形成第一矩形,将所述第一矩形作为第一网格子组件;
选择第二起始交叉点,以所述第二起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第二截止交叉点,以所述第二起始交叉点和所述第二截止交叉点构建第二对角线,并根据所述第二对角线绘制形成第二矩形,将所述第二矩形作为第二网格子组件。
可选的,在形成所述第二网格子组件之后,还包括:
判断是否存在待执行遍历的起始交叉点;
在判定存在待执行遍历的起始交叉点的情况下,以所述待执行遍历的起始交叉点为新的起点沿对角线方向遍历所述交叉点,以绘制第三网格子组件;
在判定不存在待执行遍历的起始交叉点的情况下,结束遍历。
可选的,所述交叉点包括起始交叉点、拦截交叉点、复合交叉点、虚交叉点和截止交叉点;
所述以所述第一起始交叉点开始沿对角线方向遍历交叉点,包括:
以所述第一起始交叉点作为对角线左上顶点,判断最短对角线方向右下方的交叉点是否为截止交叉点,在所述交叉点为所述虚交叉点或者所述复合交叉点的情况下,改变对角线方向,并判断下一对角线方向右下方的交叉点是否为截止交叉点;在所述交叉点为拦截交叉点的情况下,跳出遍历过程。
可选的,所述选择第二起始交叉点,包括:
将位于所述第一网格子组件左下角的首个起始交叉点作为所述第二起始交叉点;
或者,将位于所述第一网格子组件右上角的首个起始交叉点作为所述第二起始交叉点;
或者,将位于所述第一网格子组件右下角的首个起始交叉点作为所述第二起始交叉点。
可选的,所述线段特征包括线段虚实信息;所述根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,包括:根据所述线段虚实信息绘制所述分割线段;若所述分割线段为虚线,则跳过绘制;若所述分割线段为实线,则进行绘制。
可选的,该方法还包括:
利用位置偏移量修饰符、尺寸修饰符和位置修饰符,并根据所述界面尺寸,动态调整所述网格子组件的宽度和/或高度。
本发明还提供一种安卓端的界面网格绘制装置,该装置包括:
界面网格布局指令接收单元,用于接收界面网格布局指令,所述界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征;
第一绘制参数确定单元,用于基于界面尺寸确定边框线段的第一绘制参数,所述边框线段对应于界面的横向边框线、纵向边框线;
第二绘制参数确定单元,用于基于所述界面尺寸、所述线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,所述分割线段在横向或者纵向等分界面;
第一绘制单元,用于根据所述第一绘制参数绘制所述边框线段;
第二绘制单元,用于根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段。
本发明提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现前面所述安卓端的界面网格绘制方法。
本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前面所述安卓端的界面网格绘制方法。
本发明提供的安卓端的界面网格绘制方法,根据线段特征和线段交叉点特征,即可确定绘制所需要的参数,并利用可组合绘制工具进行边框线段、分割线段绘制,从而可在一界面上进行多个网格子组件的显示,每个网格子组件可用于显示一个信号源,以分别显示并操作多个信号源,而且仅仅通过线段配置和交叉点信息配置可实现安卓界面网格的各种不同布局模式,避免了复杂逻辑判断,易于界面的网格布局模式的后续维护,通用性强。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的安卓端的界面网格绘制方法的流程示意图;
图2是本发明现有技术的子组件增加边框属性绘制示意图;
图3是本发明现有技术的重写组件函数绘制示意图;
图4是本发明提供的网格布局模式选择示意图;
图5是本发明提供的线段概念示意图;
图6-1是本发明提供的网格子组件构建过程示例示意图;
图6-2是图6-1所示的网格子组件构建后的实际屏幕显示效果示意图;
图7是本发明提供的界面网格绘制原理示意图;
图8是本发明提供的界面网格绘制过程示意图;
图9是本发明提供的界面网格的使用场景示意图;
图10是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明中,文中提及的各个方向,例如,上、下、左、右、左上、左下、右上、右下、右斜下、左斜下指以安卓终端竖立在平面上且正常显示的放置为基准,用户肉眼看到的界面的上、下、左、右、左上、左下、右上、右下、右斜下、左斜下的各个相应方向。水平、行、横向等指以安卓终端竖立在平面上且正常显示的放置为基准,与水平面平行的方向。竖直、纵向、列等指以安卓终端竖立在平面上且正常显示的放置为基准,与水平面垂直的方向。
图1为本发明实施例提供的安卓端的界面网格绘制方法的流程图,如图1所示,本发明实施例提供的安卓端的界面网格绘制方法,包括:
步骤101、接收界面网格布局指令,所述界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征;
步骤102、基于界面尺寸确定边框线段的第一绘制参数,所述边框线段对应于界面的横向边框线、纵向边框线;
步骤103、基于所述界面尺寸、所述线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,所述分割线段在横向或者纵向等分界面;
步骤104、根据所述第一绘制参数绘制所述边框线段;
步骤105、根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段。
本发明提供的安卓端的界面网格绘制方法,根据线段特征和线段交叉点特征,即可确定绘制信息,利用可组合绘制工具基于所述绘制信息即可进行界面网格绘制,从而可在一界面上进行多个信号源的显示,而且仅仅通过线段配置和交叉点信息配置可实现安卓的界面网格的各种不同布局模式,避免了复杂逻辑判断,易于后续维护,通用性强。
界面的网格布局模式可以界面网格绘制模板(参见图4)的形式直观呈现,以供用户查看、选择。界面网格绘制模板对应确定分割线段的配置信息和线段交叉点的配置信息,从而用户只需选择希望的界面网格绘制模板,安卓端即可自动获得对应的分割线段的配置信息和线段交叉点的配置信息,并自动进行界面网格的绘制。例如,用户选择的是图4中栏目布局的第6个模板(不规则界面网格),则在安卓端的界面上将对应该模板绘制一模一样的界面网格。需要说明的是:本发明的技术方案尤其适用于在一个界面中有多个窗口的情况,每个窗口中将用于显示信号源,信号源可以为视频、图片、录像等,信号源为安卓端从其他终端采集的内容。组成界面网格的边框线段、分割线段的作用是实现不同信号源视觉上的分隔、以及操作上的分隔。如果没有边框线段和分割线段的话,将导致安卓界面看不清各个子窗口(即网格子组件)的界限,导致用户无法进行多窗口有效操作。
作为一种具体实施方式,界面网格绘制模板包括图4中新建页界面中的“栏目布局”控件下的各个界面网格布局模式项,当用户点击选择其中一款模板布局模式时,安卓端将接收模板布局模式选用指令(即界面网格布局指令),根据该指令执行相应的绘制操作,具体将在下文详述。
另外,线段特征表达分割线段的虚实属性以及绘制方向。线段交叉点特征表达网格界面上横向线(包括横向边框线、横向分割线)与纵向线(包括纵向边框线、纵向分割线)的相交点相关的分割线段的虚实情况,是用于计算网格子组件尺寸的重要信息。网格子组件基于网格布局模式可灵活调整,网格子组件由网格子组件单元构成,所述网格子组件单元指构成网格界面的最小单位,尺寸是固定的。一个网格子组件用来显示一个信号源,一个完整的界面网格至少包含一个网格子组件,界面上网格子组件形成的不同显示模式对应不同的布局模式。例如图4中“栏目布局”控件下的各个模板。所述第一绘制参数包括边框线段的粗细度属性信息、颜色属性信息。所述第二绘制参数包括分割线段是虚线还是实线的标识、分割线段的起点位置信息和截止点位置信息。
所述基于所述界面尺寸、所述线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,具体包括:
1031.根据线段位的位数信息、线段方向信息确定界面横向、纵向等分信息,所述线段特征包括所述线段位的位数信息、线段方向信息;
1032.根据所述界面尺寸、所述等分信息确定界面上的交叉点位置;
1033.根据所述线段交叉点特征配置所述交叉点;
1034.根据配置后的所述交叉点确定所述分割线段的所述第二绘制参数。
通过上述技术手段,根据线段位的位数信息以及界面尺寸即可确定界面网格的等分信息,所述等分信息可实现对界面网格的交叉点定位(可利用界面可组合组件中的布局坐标(LayoutCoordinates,属于类)工具),利用线段交叉点的配置信息对定位的交叉点进行配置,继而能够确定网格子组件的边界(可利用界面可组合组件的在父级中的边界函数(boundsInParent函数)),所述边界由边框线段中的实线表达。本发明仅仅根据分割线段的配置信息和线段交叉点的配置信息就可对界面进行不同模式的布局。其中,线段位指位于同一方向,并且相邻的两个交叉点之间的线段,该线段可以为分割线段,还可以为边框线段。
作为一种具体实施方式,如图5所示,线段特征采用数组形式,相对于右侧剖析图中线段的关系,定义了四个子元素(数组),分别是{1,0,0,1}、{1,1,1,1}、{2,0,0,1}、{2,1,1,1},其中每个子元素的内容包括0、1或2的数字。每个子元素的第一位为标志位,代表该组所描述的线段方向,即横向为1纵向为2。示例中有两组以1开头和两组以2开头的子元素,即表示横向和纵向分别需要绘制两组线段。每个子元素的第二位开始为线段位,代表该组所描述的线段的虚实,即实线为1虚线为0。实线表示需要绘制,虚线表示跳过绘制。由于示例中横向线有两组,它会将纵向线等分为3份,同理纵向线也会将横向线等分为3份,所以每个子元素均包含4个数字(1个标志位+3个线段位)。如上图花括号位置所示,第一组标志位为1,即表示横向线段,第二组线段位为{0,0,1},即表示横向虚线、横向虚线、横向实线。第二组标志位为1,即表示横向线段,第二组线段位为{1,1,1},即表示横向实线、横向实线、横向实线。第三组标志位为2,即表示纵向线段,第三组线段位为{0,0,1},即表示纵向虚线、纵向虚线、纵向实线。第四组标志位为2,即表示纵向线段,第四组线段位为{1,1,1},即表示纵向实线、纵向实线、纵向实线。该实施方式中,线段特征仅示出分割线段,没有示出边框线段,主要是因为边框线段不用区分虚线、实线,可默认实线。
作为另一种实施方式,线段特征也可以包括边框线段。如果需要对边框线段进行特征体现,可在数组中加入边框线段的子元素(数组)。线段特征能够解决有关线段绘制时需要的线段属性问题和线段属性匹配上确定的网格子组件的问题。示例性地,若显示出边框线段和分割线段的全部子元素(数组),则定义八个子元素(数组),分别是{1,1,1,1}、{1,0,0,1}、{1,1,1,1}、{1,1,1,1};{2,1,1,1}、{2,0,0,1}、{2,1,1,1}、{2,1,1,1}。
在本发明的优选实施方式中,线段位的位数信息表示线段的条数。线段位的位数信息由用户选择的图4中“栏目布局”控件下的相应模板确定。具体地,以选用模板的单行网格数的最大值加1为一行的纵向线段的条数;以选用模板的单列网格数的最大值加1为一列的横向线段的条数。以用户选择图4中栏目布局控件下的第4个模板控件(规则界面网格)为例,该模板为2行*3列的网格子组件布局,其中,一行的网格数最大值为3,再加1为4,则该网格子组件的一行需绘制4条纵向线段,两行需绘制8条纵向线段。相应的,一列的网格数最大值为2,再加1为3,则该网格子组件的一列需绘制3条横向线段,三列需绘制9条横向线段。由此,该网格子组件需绘制8条纵向线段、9条横向线段。此示例将边框线段也计算在内。
进一步地,在边框线段、分割线段绘制前,计算出横向分割线段和纵向分割线段的数量,根据横向分割线段确定纵向线段的等分信息;根据纵向分割线段确定横向线段的等分信息。等分信息指分割线段的线条长度、线条起始坐标、线条终止坐标等。具体地,横向线段的等分信息为:安卓端界面的实际宽度÷(纵向分割线段条数+1);纵向线段的等分信息为:安卓端界面的实际高度÷(横向分割线段条数+1)。在本发明的另一种实施方式中,横向线段的等分信息还可以为:安卓端界面的实际宽度÷(纵向边框线条数+纵向分割线段条数-1);纵向线段的等分信息还可以为:安卓端界面的实际高度÷(横向边框线条数+横向分割线段条数-1)。
在本发明的具体实施方式中,通过按索引循环遍历数组中的元素(Array.forEachIndexed循环)得到分割线段的每一个子元素(数组)。解析上述得到的一个子元素,根据该一个子元素的第一位数值(此定义为外循环标识)确定其描述的分割线段的绘制方向;再根据该一个子元素的第二位数值至第四位数值((此均定义为内循环标识))确定其描述的各段分割线段的虚实情况,即虚线段,或者实线段。解析完一个子元素后,再按照上述步骤继续解析下一个子元素,直至全部子元素解析完毕。
循环解析时,首先要过滤掉0值(虚线)跳过绘制。非0值时(实线)进入绘制。根据子元素描述的分割线段的方向和内容绘制域的尺寸(ContentDrawScope.size属性)(安卓端界面的实际尺寸),可以计算出分割线段的起点坐标和截止点坐标。并将分割线段的起点坐标、截止点坐标作为参数发送至线条绘制函数(Canvas.drawLine函数),由线条绘制函数(Canvas.drawLine函数)基于上述坐标信息完成分割线段的绘制。在本发明的优选实施方式中,根据内容绘制域的尺寸,并采用嵌套(内外)循环确定分割线段的起点坐标、截止点坐标,示例性地,嵌套(内外)循环包括:一段分割线段的起点的横坐标可以为该行已绘制横向分割线段的总长度×内循环标识;该段分割线段的起点的纵坐标为该列已绘制纵向分割线段的总长度×外循环标识。对应的,该段分割线段的截止点的横坐标可以为(该行“已绘制横向分割线段+当前待绘制横向分割线段”的总长度)×内循环标识;该段分割线段的截止段的纵坐标可以为(该列“已绘制纵向分割线段+当前待绘制纵向分割线段”的总长度)×外循环标识。
作为一种具体实施方式,所述根据所述第一绘制参数绘制所述边框线段,包括:将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制。在本发明中,作为创新点之一,在可组合界面(Compose组件)中添加边框绘制修饰符(Modifier.border修饰符),利用所述边框绘制修饰符(Modifier.border修饰符)对边框线段进行绘制。通过对边框线段进行灵活的绘制,以满足各种不同的用户需求。
作为一种具体实施方式,在将所述第一绘制参数组合所述边框绘制修饰符进行所述边框线段的绘制前,在边框绘制修饰符中设置边框线段的颜色属性信息和粗细度属性信息;相应地,所述将所述第一绘制参数组合所述边框绘制修饰符进行所述边框线段的绘制,包括:利用所述边框绘制修饰符根据所述颜色属性信息和所述粗细度属性信息对所述边框线段进行修饰。
所述将所述第二绘制参数组合所述内容绘制修饰符,进行所述分割线段的绘制,包括:通过所述内容绘制修饰符获取所述内容绘制域的尺寸、绘制工具;基于所述内容绘制域的尺寸确定所述分割线段的长度和所述分割线段的粗细度;利用所述绘制工具根据所述分割线段的长度和所述分割线段的粗细度绘制所述分割线段。
作为一种具体实施方式,所述根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,包括:将所述第二绘制参数组合所述内容绘制修饰符,进行所述分割线段的绘制,所述内容绘制修饰符提供内容绘制域。作为本发明的创新点之一,在可组合界面组件中添加内容绘制修饰符(Modifier.drawWithContent修饰符),该修饰符提供了内容绘制域(ContentDrawScope域),通过所述内容绘制域(ContentDrawScope域)获取当前网格子组件的尺寸(Size)和绘制工具(Canvas对象),所述当前网格子组件的尺寸(Size)可以用来计算分割线段的等分尺寸,绘制工具(Canvas对象)可以用来绘制分割线段,在这个修饰符中完成分割线段绘制的核心功能。通过对分割线段按照配置进行灵活的绘制,不需要额外开发新的绘图工具。
所述线段特征包括线段虚实信息;所述根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,包括:根据所述线段虚实信息绘制所述分割线段;若所述分割线段为虚线,则跳过绘制(即不绘制);若所述分割线段为实线,则进行绘制。
作为优选的实施方式,所述分割线段与所述边框线段的颜色属性信息设置一致;所述分割线段与所述边框线段的粗细度属性信息设置一致,目的是使网格子组件的线段粗细度相同,且使网格子组件的线段颜色相同,令网格子组件的各个线段的粗细度均匀,线段绘制整合与整条线条绘制无异,绘制后的网格美观。
在本发明可选的实施方式中,在可组合界面(Compose组件)中添加绘制修饰符(Modifier修饰符),进一步地添加边框绘制修饰符(Modifier.border修饰符),以进行边框线段的绘制。在可组合界面组件中添加内容绘制修饰符(Modifier.drawWithContent修饰符),该修饰符提供了内容绘制域(ContentDrawScope域),通过所述内容绘制域(ContentDrawScope域)获取当前网格子组件的尺寸(Size)和绘制工具(Canvas对象),其中当前网格子组件的尺寸(Size)可以用来计算分割线段的等分尺寸,绘制工具(Canvas对象)可以用来绘制分割线段。通过将边框绘制修饰符(Modifier.border修饰符)的颜色属性信息与内容绘制域(ContentDrawScope域)的绘制工具(Canvas对象)的颜色属性信息设置一致,使得分割线段与边框线段的颜色一样。通过将边框绘制修饰符(Modifier.border修饰符)的粗细度属性信息与内容绘制域(ContentDrawScope域)的绘制工具(Canvas对象)的粗细度属性信息设置一致,使得分割线段与边框线段的粗细度一样。
利用线段交叉点特征计算网格子组件尺寸的配置,如图6-1所示,线段交叉点特征为数组形式。相对于右侧剖析图中线段的关系,定义了四个子元素(数组),包括{1,-1,1,1}、{1,(0,0),(1,0),1}、{1,(1,-1),(1,1),1}、{1,1,1,1},其中每个子元素的内容包括0、1或-1中的一个数字,或者包括由0、1或-1中两个数字组成。一个数字代表其为起始交叉点,或截止交叉点,两个数字代表其为复合交叉点(在前的数字表示起始交叉点;在后的数字表示截止交叉点)。1表示为实点,0表示为虚点,-1表示为拦截点。
图6-1中,连同边框在内,共有4整条横向线和4整条纵向线,等分交叉后共有16个交叉点,16个交叉点的配置信息为{1,-1,1,1}、{1,(0,0),(1,0),1}、{1,(1,-1),(1,1),1}、{1,1,1,1},以横向为基准分组,得到四个子元素(数组),每个子元素描述了4个交叉点。由于示例中有四个虚线线段,影响了每个子元素的实际数值。其中第一组分别为{1, -1,1, 1},即表示实点、拦截点、实点、实点;第二组分别为{1, (0, 0), (1, 0), 1},即表示实点、(虚起始点、虚截止点)、(实起始点、虚截止点)、实点;第三组分别为{1,(1,-1),(1,1),1},即表示实点、(实起始点、拦截截止点)、(实起始点、实截止点)、实点;第四组分别为{1,1,1,1},即表示实点、实点、实点、实点。需要说明的是,在横线为实线,纵线为虚线的交叉点,定义为拦截点;在纵线为实线,横线为虚线的交叉点,定义为实点。
匹配网格子组件尺寸时,如图6-1所示,以对角线的方式寻找两个为1的交叉点(实起始交叉点对应实截止交叉点)。从左上角顶点开始,沿右斜下方向依次纵向寻找遍历。当右斜下方交叉点为0时,纵向寻找下一个交叉点;当交叉点为-1时,跳过此纵深方向,继续沿下一个右斜下方(即下一个对角线方向)寻找;当交叉点为1时,则对角线成立,通过对角线可得矩形,网格子组件寻找成功,其尺寸可根据网格子组件实际大小推算得到,网格子组件尺寸确定后,实际屏幕显示效果如图6-2所示。
下面具体说明根据配置的线段交叉点特征确定网格子组件的过程。
选择第一起始交叉点,以所述第一起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第一截止交叉点,以所述第一起始交叉点和第一截止交叉点构建第一对角线,并根据所述第一对角线绘制形成第一矩形,将所述第一矩形作为第一网格子组件;选择第二起始交叉点,以所述第二起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第二截止交叉点,以所述第二起始交叉点和第二截止交叉点构建第二对角线,并根据所述第二对角线绘制形成第二矩形,将所述第二矩形作为第二网格子组件,直到遍历完所有的起始交叉点,确定所有的网格子组件。即在判定不存在待执行遍历的起始交叉点的情况下,结束遍历。
进一步地,在形成第二网格子组件之后,还包括:判断是否存在待执行遍历的起始交叉点;在判定存在待执行遍历的起始交叉点的情况下,以待执行遍历的起始交叉点为新的起点沿对角线方向遍历交叉点,以绘制第三网格子组件;在判定不存在待执行遍历的起始交叉点的情况下,结束遍历。
这样,每基于一个起始交叉点执行一轮遍历后,执行对下一个起始交叉点的判断操作,在有待执行遍历的起始交叉点的情况下,对该待执行遍历的起始交叉点进行新一轮遍历。
在本发明的一种优选实施方式中,可以在形成第一网格子组件后,就进行待执行遍历的起始交叉点的判定操作;还可以在形成第二网格子组件后,才进行待执行遍历的起始交叉点的判定操作。
作为一种优选实施方式,所述交叉点包括起始交叉点、拦截交叉点、复合交叉点、虚交叉点和截止交叉点;所述起始交叉点、截止交叉点为实点,表示形成可交叉的至少两条线段。虚交叉点表示不能形成可交叉的线段;拦截交叉点表示形成两条横向线段;复合交叉点表示两个网格子组件的共用交叉点。以所述第一起始交叉点开始沿对角线方向遍历交叉点,包括:以所述第一起始交叉点作为对角线左上顶点,判断最短对角线方向右下方的交叉点是否为截止交叉点,在所述交叉点为所述虚交叉点或者复合交叉点的情况下,改变对角线方向,并判断下一对角线方向右下方的交叉点是否为截止交叉点;在所述交叉点为拦截交叉点的情况下,跳出遍历过程。
所述选择第二起始交叉点,包括:将位于所述第一网格子组件左下角的首个起始交叉点作为所述第二起始交叉点;或者,将位于所述第一网格子组件右上角的首个起始交叉点作为所述第二起始交叉点;或者,将位于所述第一网格子组件右下角的首个起始交叉点作为所述第二起始交叉点。
通过上述技术手段,可利用较少的计算量完成网格子组件的确定。
上面已经详细说明,匹配网格子组件的方式是以对角线为路径,起点和终点均为1时,则矩形成立,网格子组件匹配成功。如图7所示,由于配置的是二维数组,所以对角线以数组第[1][1](第一行第一个)元素开始,沿右斜下方开始匹配,并纵向移动,即顺序依次为[2][2]、[3][2]、[4][2]、[2][3]、[3][3]……当匹配到有效终点(值为1)或最后一个元素时,起点向右移动一位(如[1][2]元素),开始下一轮匹配,直到再无起点时,匹配结束。
匹配的过程中,需要四层嵌套循环完成,前两层对应起点坐标(即左上角位置),后两层对应终点坐标(即右下角位置),逻辑判断在第二层和第四层循环中执行。第二层循环可知起点是否为实起点,第四层循环可知终点是否为实截止点。如果是,则进行有效性验证;如果不是,当值为0时继续纵深向下匹配,当值为-1时(拦截交叉点)则通过continue跳出循环,执行下一个起点或截止点的匹配。匹配结束后,可得0到N个数组,每个数组描述了一个矩形的左上、右上、左下、右下四个顶点,该四个顶点的横坐标都是横向的分割线段的长度的倍数;该四个顶点的纵坐标都是纵向的分割线段的长度的倍数。
如图7所示,以数组第[1][1](第一行第一个)元素作为起始交叉点,沿该起始交叉点的右斜下方开始逐点匹配,并纵向(图7中纵穿第一列三个网格绘制的粗箭头的方向)移动,具体地,从第[2][2](第二行第二个)、[3][2](第三行第二个)、[4][2](第四行第二个)元素逐个遍历,在第[2][2]元素处确定其为复合交叉点且截止交叉点数值为0,则该交叉点不能作为与第[1][1]元素匹配的交叉点;再遍历到第[3][2]元素处,确定其为复合交叉点且截止交叉点数值为-1,则可知该交叉点为拦截交叉点,不能作为与第[1][1]元素匹配的交叉点,且跳出遍历过程(在遇到拦截交叉点的情况下,跳出当前方向的遍历),即不对第[4][2]元素进行匹配判定。然后,将第[1][1]元素启动第二轮遍历,即分别与第[2][3]、[3][3]、[4][3]元素进行匹配判定。在第[3][3]元素处确定为数值为1的实交叉点,故该交叉点可以作为与第[1][1]元素匹配的交叉点,以第[1][1]元素与第[3][3]元素连接的线段作为对角线,以该对角线为基准绘制矩形,形成以第[1][1]元素、第[1][3]元素、第[3][1]元素、第[3][3]元素为四个顶点的矩形,该矩形即为一个网格子组件。
然后再确定下一个数值为1的起始交叉点,例如第[3][1]元素,按照上文匹配步骤,逐个交叉点执行相应操作。直到对全部的起始交叉点完成匹配,则完成绘制全部网格子组件的操作。
在计算网格子组件尺寸后,利用所述位置偏移量修饰符、所述尺寸修饰符和所述位置修饰符,并根据所述界面尺寸,动态调整所述网格子组件的宽度和/或高度。
作为一种具体实施方式,在可组合界面组件中的元素间隔器(Spacer组件)中增加位置偏移量修饰符(Modifier.offset修饰符)、尺寸修饰符(Modifier.size修饰符)和位置修饰符(Modifier.onGloballyPositioned修饰符)等,利用上述修饰符可以动态的设置、调整屏幕中网格子组件的宽度和/或高度。即在布局模式不变的情况下,不需要重新绘制边框线段、分割线段以及计算网格子组件尺寸,通过上述修饰符直接进行网格子组件尺寸的调整即可。通过上述技术手段,只需要通过对可组合界面组件进行添加特定的修饰符即可实现调整屏幕中网格子组件的宽度和/或高度。
在本发明的实施方式中,绘制界面网格需要绘制边框线段,并且绘制分割线段。如图8所示,在绘制边框线段时,在可组合界面(Compose组件)中添加边框绘制修饰符(Modifier.border修饰符),在边框绘制修饰符(Modifier.border修饰符)设置颜色属性信息和设置粗细度属性信息,以进行边框线段的绘制。在绘制分割线段时,在可组合界面组件中添加内容绘制修饰符(Modifier.drawWithContent修饰符),该修饰符提供了内容绘制域(ContentDrawScope域),通过它(ContentDrawScope域)获取当前安卓端界面的尺寸(Size)和绘制工具(Canvas对象),根据当前安卓端界面的尺寸(Size)、并采用嵌套(内外)循环计算出分割线段的起点坐标和截止点坐标;在绘制工具(Canvas对象)构造paint对象,设置分割线段的颜色属性信息和粗细度属性信息。将分割线段的起点坐标、截止点坐标、颜色属性信息和粗细度属性信息全部发送至线条绘制函数(Canvas.drawLine函数),由线条绘制函数(Canvas.drawLine函数)基于上述信息完成分割线段绘制。
在本发明一些实施例中,安卓端通过信号源采集装置与信号源通信连接,安卓端的网格子组件用于显示信号源的内容,每个网格子组件可以显示一个信号源的内容,信号源内容可以为例如教学内容。例如,如图9所示,用户(如教师)可以根据要呈现的教学内容选择网格布局模板,在选取模板后,在界面中绘制出与模板一样的网格子组件,教师可以其安卓端(安卓手机、平板电脑等)与信号源通信连接,如连接教师的笔记本电脑,可在第一网格子组件展示来自笔记本电脑的教学文档(画板应用);如连接学生的计算机,可在第二网格子组件展示来自学生计算机的word文档(作业),图9中未示出;如连接学生张三家中摄像头,可在第三网格子组件展示张三上课视频,图9中未示出,等等。
本发明还提供一种安卓端的界面网格绘制装置,该装置包括:
界面网格布局指令接收单元,用于接收界面网格布局指令,所述界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征;
第一绘制参数确定单元,用于基于界面尺寸确定边框线段的第一绘制参数,所述边框线段对应于界面的横向边框线、纵向边框线;
第二绘制参数确定单元,用于基于所述界面尺寸、所述线段交叉点特征、所述线段特征确定分割线段的第二绘制参数,所述分割线段在横向或者纵向等分界面;
第一绘制单元,用于根据所述第一绘制参数绘制所述边框线段;
第二绘制单元,用于根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段。
通过本发明,在接收到界面网格布局指令的情况下,仅仅根据线段特征和线段交叉点,即可确定绘制所需要的参数,并利用可组合绘制工具进行边框线段、分割线段绘制,从而可在一界面上进行多个网格子组件的显示,每个网格子组件可用于显示一个信号源,以分别显示并操作多个信号源,而且仅仅通过线段配置和交叉点信息配置可实现安卓界面网格的各种不同布局模式,避免了复杂逻辑判断,易于界面的网格布局模式的后续维护,通用性强。
作为一种实施方式,所述第二绘制参数确定单元包括:
等分信息子单元,用于根据线段位的位数信息、线段方向信息确定界面横向、纵向等分信息,所述线段特征包括所述线段位的位数信息、线段方向信息;
交叉点位置确定子单元,用于根据所述界面尺寸、所述等分信息确定界面上的交叉点位置;
网格子组件确定单元,用于根据所述线段交叉点特征配置所述交叉点;
第二绘制参数确定子单元,用于根据配置后的交叉点确定分割线段的第二绘制参数。
可选的,所述第一绘制单元用于将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制。
可选的,所述界面网格绘制装置还包括:属性信息设置单元,用于设置所述边框线段的颜色属性信息和粗细度属性信息;边框线段修饰单元,用于利用所述边框绘制修饰符根据所述颜色属性信息和所述粗细度属性信息对所述边框线段进行修饰。
可选的,所述第二绘制单元用于将所述第二绘制参数组合所述内容绘制修饰符,进行所述分割线段的绘制,所述内容绘制修饰符提供内容绘制域。
可选的,所述第二绘制单元包括:绘制修饰子单元,用于通过所述内容绘制修饰符获取所述内容绘制域的尺寸、绘制工具;分割线段尺寸确定子单元,用于基于所述内容绘制域的尺寸确定所述分割线段的长度和所述分割线段的粗细度;分割线段绘制子单元,用于利用所述绘制工具根据所述分割线段的长度和所述分割线段的粗细度绘制所述分割线段。
可选的,所述界面网格绘制装置还包括第一网格子组件计算单元、第二网格子组件计算单元,所述第一网格子组件计算单元,用于选择第一起始交叉点,以所述第一起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第一截止交叉点,以所述第一起始交叉点和第一截止交叉点构建第一对角线,并根据所述第一对角线绘制形成第一矩形,将所述第一矩形作为第一网格子组件;所述第二网格子组件计算单元,用于选择第二起始交叉点,以所述第二起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第二截止交叉点,以所述第二起始交叉点和第二截止交叉点构建第二对角线,并根据所述第二对角线绘制形成第二矩形,将所述第二矩形作为第二网格子组件。
可选的,所述述界面网格绘制装置还包括:遍历单元,用于判断是否存在待执行遍历的起始交叉点,在判定不存在待执行遍历的起始交叉点的情况下,结束遍历;在判定存在待执行遍历的起始交叉点的情况下,以所述待执行遍历的起始交叉点为新的起点沿对角线方向遍历所述交叉点,以绘制第三网格子组件。
可选的,所述第一网格子组件计算单元包括:交叉点判断子单元,用于以所述第一起始交叉点作为对角线左上顶点,判断最短对角线方向右下方的交叉点是否为截止交叉点,在所述交叉点为所述虚交叉点或者复合交叉点的情况下,改变对角线方向,并判断下一对角线方向右下方的交叉点是否为截止交叉点;遍历跳出子单元,用于在所述交叉点为拦截交叉点的情况下,跳出遍历过程。
可选的,所述第二网格子组件计算单元包括:第二起始交叉点选择子单元,用于将位于所述第一网格子组件左下角的首个起始交叉点作为所述第二起始交叉点;或者,将位于所述第一网格子组件右上角的首个起始交叉点作为所述第二起始交叉点;或者,将位于所述第一网格子组件右下角的首个起始交叉点作为所述第二起始交叉点。
可选的,所述第二绘制单元根据所述线段虚实信息绘制所述分割线段;若所述分割线段为虚线,则跳过绘制;若所述分割线段为实线,则进行绘制。
可选的,所述界面网格绘制装置还包括:网格子组件调整单元,用于利用所述位置偏移量修饰符、所述尺寸修饰符和所述位置修饰符,并根据所述界面尺寸,动态调整所述网格子组件的宽度和/或高度。
图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备包括:处理器(processor)1010、通信接口(Communications Interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。电子设备包括:存储器1030、处理器1010及存储在存储器1030上并可在处理器1010上运行的计算机程序,处理器1010可以调用存储器1030中的逻辑指令,运行计算机程序,以执行前面所述的安卓端的界面网格绘制方法。
值得说明的是,在本发明实施例中,通信接口1020通过通信网络与外部通信,通信网络本质旨在涵盖通过交换机、路由器等必要的固件或软件实现的有线或无线的网络连接,也涵盖通过一些服务端或其他计算机等作为中介实现的有线或无线的网络连接,本发明为简化描述,突出发明点,在描述网络连接时有时略去了对路由器/交换机的说明。在本发明中,所涉及的网络可以包括 Wi-fi网络、蓝牙网络、私人区域网络(PAN)、局域网(LAN)、广域网 (WAN)、IEEE 802.1x、内联网、互联网、外联网及其各项组合。网络也可以包括数字蜂窝电话网络,其可以包括全球移动通信系统(GSM)、通用分组无线服务(GPRS)、cdmaOne、CDMA2000、演进-数据优化的(EV-DO)、增强型数据速率GSM演进 (EDGE)、通用移动通信系统 (UMTS)、数字增强型无绳通信 (DECT)、数字 AMPS(IS-136/TDMA)、集成数字增强型网络(iDEN)、WiMAX、LTE、LTE advanced、移动宽带无线接入 (MBWA)、IEEE 802.20。网络可以是公共接入的、私人的、虚拟私人的例如 VPN。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行前面所述的安卓端的界面网格绘制方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (16)
1.一种安卓端的界面网格绘制方法,其特征在于,包括:
接收界面网格布局指令,所述界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征,所述线段交叉点特征包含交叉点类型,所述交叉点类型由网格界面上横向线与纵向线的相交点相关的分割线段的虚实情况确定,包括起始交叉点、虚交叉点、复合交叉点、截止交叉点和拦截交叉点;
基于界面尺寸确定边框线段的第一绘制参数,所述边框线段对应于界面的横向边框线、纵向边框线,根据所述第一绘制参数绘制所述边框线段;
根据所述界面尺寸、界面横向和纵向等分信息确定界面上的交叉点位置;根据所述线段交叉点特征配置所述交叉点;根据配置后的所述交叉点确定所述分割线段的第二绘制参数;
根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,具体包括:选择第一起始交叉点,以所述第一起始交叉点开始沿对角线方向遍历交叉点,在遍历到的交叉点为所述虚交叉点或者所述复合交叉点的情况下,改变对角线方向,并判断下一对角线方向遍历到的交叉点是否为截止交叉点;在遍历到的交叉点为拦截交叉点的情况下,跳出遍历过程;
在找到截止交叉点的情况下,将其作为第一截止交叉点,以所述第一起始交叉点和所述第一截止交叉点构建第一对角线,并根据所述第一对角线绘制形成第一矩形,将所述第一矩形作为第一网格子组件。
2.根据权利要求1所述的安卓端的界面网格绘制方法,其特征在于,所述线段特征包括线段位的位数信息、线段方向信息;该方法包括:根据线段位的位数信息、线段方向信息确定所述界面横向、纵向等分信息。
3.根据权利要求1所述的安卓端的界面网格绘制方法,其特征在于,所述根据所述第一绘制参数绘制所述边框线段,包括:
将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制。
4.根据权利要求3所述的安卓端的界面网格绘制方法,其特征在于,在将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制之前,该方法还包括:
设置所述边框线段的颜色属性信息和粗细度属性信息;
相应地,所述将所述第一绘制参数组合边框绘制修饰符进行所述边框线段的绘制包括:利用所述边框绘制修饰符根据所述颜色属性信息和所述粗细度属性信息对所述边框线段进行修饰。
5.根据权利要求4所述的安卓端的界面网格绘制方法,其特征在于,所述根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,包括:
将所述第二绘制参数组合内容绘制修饰符,进行所述分割线段的绘制,所述内容绘制修饰符提供内容绘制域。
6.根据权利要求5所述的安卓端的界面网格绘制方法,其特征在于,所述将所述第二绘制参数组合所述内容绘制修饰符,进行所述分割线段的绘制,包括:
通过所述内容绘制修饰符获取所述内容绘制域的尺寸、绘制工具;
基于所述内容绘制域的尺寸确定所述分割线段的长度和所述分割线段的粗细度;
利用所述绘制工具根据所述分割线段的长度和所述分割线段的粗细度绘制所述分割线段。
7.根据权利要求6所述的安卓端的界面网格绘制方法,其特征在于,所述分割线段与所述边框线段的颜色属性信息设置一致;所述分割线段与所述边框线段的粗细度属性信息设置一致。
8.根据权利要求2所述的安卓端的界面网格绘制方法,其特征在于,根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段还包括:
选择第二起始交叉点,以所述第二起始交叉点开始沿对角线方向遍历交叉点,在找到截止交叉点的情况下,将其作为第二截止交叉点,以所述第二起始交叉点和所述第二截止交叉点构建第二对角线,并根据所述第二对角线绘制形成第二矩形,将所述第二矩形作为第二网格子组件。
9.根据权利要求8所述的安卓端的界面网格绘制方法,其特征在于,在形成所述第二网格子组件之后,还包括:
判断是否存在待执行遍历的起始交叉点;
在判定存在待执行遍历的起始交叉点的情况下,以所述待执行遍历的起始交叉点为新的起点沿对角线方向遍历所述交叉点,以绘制第三网格子组件;
在判定不存在待执行遍历的起始交叉点的情况下,结束遍历。
10.根据权利要求8或9所述的安卓端的界面网格绘制方法,其特征在于,所述以所述第一起始交叉点开始沿对角线方向遍历交叉点,包括:
以所述第一起始交叉点作为对角线左上顶点,判断最短对角线方向右下方的交叉点是否为截止交叉点,在所述交叉点为所述虚交叉点或者所述复合交叉点的情况下,改变对角线方向,并判断下一对角线方向右下方的交叉点是否为截止交叉点;在所述交叉点为拦截交叉点的情况下,跳出遍历过程。
11.根据权利要求8所述的安卓端的界面网格绘制方法,其特征在于,所述选择第二起始交叉点,包括:
将位于所述第一网格子组件左下角的首个起始交叉点作为所述第二起始交叉点;
或者,将位于所述第一网格子组件右上角的首个起始交叉点作为所述第二起始交叉点;
或者,将位于所述第一网格子组件右下角的首个起始交叉点作为所述第二起始交叉点。
12.根据权利要求1-4任一项所述的安卓端的界面网格绘制方法,其特征在于,所述线段特征包括线段虚实信息;所述根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,包括:根据所述线段虚实信息绘制所述分割线段;若所述分割线段为虚线,则跳过绘制;若所述分割线段为实线,则进行绘制。
13.根据权利要求2所述的安卓端的界面网格绘制方法,其特征在于,该方法还包括:
利用位置偏移量修饰符、尺寸修饰符和位置修饰符,并根据所述界面尺寸,动态调整所述网格子组件的宽度和/或高度。
14.一种安卓端的界面网格绘制装置,其特征在于,该装置包括:
界面网格布局指令接收单元,用于接收界面网格布局指令,所述界面网格布局指令包含表示网格布局模式的线段特征、线段交叉点特征,所述线段交叉点特征包含交叉点类型,所述交叉点类型由网格界面上横向线与纵向线的相交点相关的分割线段的虚实情况确定,包括起始交叉点、虚交叉点、复合交叉点、截止交叉点和拦截交叉点;
第一绘制参数确定单元,用于基于界面尺寸确定边框线段的第一绘制参数,所述边框线段对应于界面的横向边框线、纵向边框线;
第二绘制参数确定单元,用于:根据所述界面尺寸、界面横向和纵向等分信息确定界面上的交叉点位置;根据所述线段交叉点特征配置所述交叉点;根据配置后的所述交叉点确定所述分割线段的第二绘制参数;
第一绘制单元,用于根据所述第一绘制参数绘制所述边框线段;
第二绘制单元,用于:根据所述第二绘制参数计算网格子组件尺寸并绘制所述分割线段,具体包括:选择第一起始交叉点,以所述第一起始交叉点开始沿对角线方向遍历交叉点,在遍历到的交叉点为所述虚交叉点或者所述复合交叉点的情况下,改变对角线方向,并判断下一对角线方向遍历到的交叉点是否为截止交叉点;在遍历到的交叉点为拦截交叉点的情况下,跳出遍历过程;
在找到截止交叉点的情况下,将其作为第一截止交叉点,以所述第一起始交叉点和所述第一截止交叉点构建第一对角线,并根据所述第一对角线绘制形成第一矩形,将所述第一矩形作为第一网格子组件。
15.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至13任一项所述安卓端的界面网格绘制方法。
16.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述安卓端的界面网格绘制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311424186.9A CN117149200B (zh) | 2023-10-31 | 2023-10-31 | 一种安卓端的界面网格绘制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311424186.9A CN117149200B (zh) | 2023-10-31 | 2023-10-31 | 一种安卓端的界面网格绘制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117149200A CN117149200A (zh) | 2023-12-01 |
CN117149200B true CN117149200B (zh) | 2024-01-23 |
Family
ID=88897210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311424186.9A Active CN117149200B (zh) | 2023-10-31 | 2023-10-31 | 一种安卓端的界面网格绘制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149200B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140089752A (ko) * | 2013-01-07 | 2014-07-16 | 김정한 | 프레임에디팅 제공 방법 및 장치 |
CN108052662A (zh) * | 2017-12-29 | 2018-05-18 | 上海器魂智能科技有限公司 | 基于网页的组件布局方法、装置、设备及存储介质 |
CN108566559A (zh) * | 2018-04-11 | 2018-09-21 | 上海百事灵多媒体科技有限公司 | 一种epg可视化页面的生成方法 |
CN110489117A (zh) * | 2018-05-15 | 2019-11-22 | 车伯乐(北京)信息科技有限公司 | 一种网页布局方法及装置 |
CN112529984A (zh) * | 2020-12-23 | 2021-03-19 | 中移(杭州)信息技术有限公司 | 绘制多边形的方法、装置、电子设备及存储介质 |
CN112860258A (zh) * | 2021-03-16 | 2021-05-28 | 京东方科技集团股份有限公司 | 会议系统界面的布局方法、装置及存储介质 |
CN114637506A (zh) * | 2022-03-23 | 2022-06-17 | 中国平安人寿保险股份有限公司 | 基于人工智能的网格布局方法、装置、设备及存储介质 |
CN116610312A (zh) * | 2022-02-09 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 界面布局方法、装置、设备、可读存储介质及程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9933925B2 (en) * | 2015-03-11 | 2018-04-03 | Nexthink Sa | Screen layout manager |
-
2023
- 2023-10-31 CN CN202311424186.9A patent/CN117149200B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140089752A (ko) * | 2013-01-07 | 2014-07-16 | 김정한 | 프레임에디팅 제공 방법 및 장치 |
CN108052662A (zh) * | 2017-12-29 | 2018-05-18 | 上海器魂智能科技有限公司 | 基于网页的组件布局方法、装置、设备及存储介质 |
CN108566559A (zh) * | 2018-04-11 | 2018-09-21 | 上海百事灵多媒体科技有限公司 | 一种epg可视化页面的生成方法 |
CN110489117A (zh) * | 2018-05-15 | 2019-11-22 | 车伯乐(北京)信息科技有限公司 | 一种网页布局方法及装置 |
CN112529984A (zh) * | 2020-12-23 | 2021-03-19 | 中移(杭州)信息技术有限公司 | 绘制多边形的方法、装置、电子设备及存储介质 |
CN112860258A (zh) * | 2021-03-16 | 2021-05-28 | 京东方科技集团股份有限公司 | 会议系统界面的布局方法、装置及存储介质 |
CN116610312A (zh) * | 2022-02-09 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 界面布局方法、装置、设备、可读存储介质及程序产品 |
CN114637506A (zh) * | 2022-03-23 | 2022-06-17 | 中国平安人寿保险股份有限公司 | 基于人工智能的网格布局方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117149200A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843494B (zh) | 一种实现区域屏幕截图的方法、装置和终端 | |
US20160085520A1 (en) | Application Creation Method and Apparatus | |
EP2965229A1 (en) | Automatic alignment of a multi-dimensional layout | |
CN104636726A (zh) | 一种图像色彩识别方法、装置及终端 | |
US20140225894A1 (en) | 3d-rendering method and device for logical window | |
CN111737800B (zh) | 图元选择方法、装置及电子设备 | |
US20210247967A1 (en) | Design interface object manipulation based on aggregated property values | |
DE202014010897U1 (de) | Crowdsourcing-System für das Erkennen von defekten WLAN-Positionsbestimmungs-Modellen in Innenräumen | |
DE102019133749A1 (de) | Automatisierte neu-erstellung einer beleuchtungstechnik für einen veranstaltungsort | |
CN106611056B (zh) | 三维仿真地图的切图方法及装置 | |
CN106648571B (zh) | 一种用于校对应用界面的方法和装置 | |
CN111814086A (zh) | 一种用于对网页进行截图方法和系统 | |
CN117149200B (zh) | 一种安卓端的界面网格绘制方法、装置、设备及存储介质 | |
CN105760917A (zh) | 三维码编码方法及系统 | |
CN103324484A (zh) | 一种展现视图的方法及设备 | |
CN117036576A (zh) | 地图渲染方法、装置、电子设备及存储介质 | |
CN109934894B (zh) | 一种cad出图方法、装置和计算机可读存储介质 | |
CN112070852A (zh) | 图像的生成方法和系统、数据处理方法 | |
CN115019138A (zh) | 视频字幕擦除、模型训练、交互方法、设备及存储介质 | |
CN113312318A (zh) | 文件显示方法、装置及计算机设备 | |
US20150143301A1 (en) | Evaluating Three-Dimensional Geographical Environments Using A Divided Bounding Area | |
CN112580123A (zh) | 梁图元的编辑方法、装置、电子设备及可读存储介质 | |
CN105787541A (zh) | 四维码编码方法及系统 | |
CN110569404A (zh) | 一种数据对比方法、装置、电子设备及存储介质 | |
CN111782740A (zh) | 座位数据处理方法、计算设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |