本发明涉及安卓界面开发,尤其是涉及一种文字纵向显示方法、系统和电子设备。
背景技术:
1、随着移动互联网的快速发展,安卓系统作为主流的手机操作系统,其用户界面设计日益受到重视。文本控件作为用户界面中的重要元素,其显示效果直接影响用户的使用体验。虽然水平文本布局是标准的,但出于美学吸引力、文化偏好和空间限制等考虑,越来越多的应用场景需要支持纵向文本显示。如超窄屏幕、阅读古籍、诗歌等需要纵向阅读的文本时,横向显示的文本控件就显得不够灵活,无法满足用户的个性化需求。然而,安卓官方并未提供支持纵向显示的文本控件,目前市场上的安卓文本控件大多只支持横向显示,无法满足纵向显示的需求。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种文字纵向显示方法、系统和电子设备,可以纵向显示待显示文本,以适应不同场景的展示需求,从而丰富界面展示效果,提升用户使用体验。
2、第一方面,本发明实施例提供了一种文字纵向显示方法,应用于安卓系统,方法包括:获取文字控件对应的控件属性和待显示字符串对应的待显示字符串属性;基于控件属性和待显示字符串属性,确定目标字符串和每列最大字符数;目标字符串为待显示字符串中文字控件能够完整显示的字符串;遍历目标字符串,基于每列最大字符数,在每一列绘制的字符都排满的原则下,按照从上到下的顺序为目标字符串中的每个字符设置对应的字符坐标;根据字符坐标和待显示字符串属性在文字控件中绘制目标字符串。
3、进一步的,控件属性包括控件高度和控件宽度;待显示字符串属性包括待显示字符数、单个字符对应的字符高度和字符宽度;基于控件属性和待显示字符串属性,确定目标字符串和每列最大字符数的步骤,包括:基于控件高度和字符高度,确定控件高度和字符高度的商为每列最大字符数;基于控件宽度与字符宽度,确定控件宽度与字符宽度的商为最大显示列数;基于每列最大字符数和最大显示列数,确定每列最大字符数和最大显示列数的乘积为最大字符数;判断待显示字符数是否小于或等于最大字符数;如果是,确定待显示字符串为目标字符串;如果不是,基于最大字符数切割待显示字符串,确定切割后的待显示字符串为目标字符串。
4、进一步的,遍历目标字符串,基于每列最大字符数,在每一列绘制的字符都排满的原则下,按照从上到下的顺序为目标字符串中的每个字符设置对应的字符坐标的步骤,包括:s1:设置目标字符串中第一字符对应的字符坐标的横坐标为0,纵坐标为0,设置当前列中有坐标字符数的初始值为1;s2:获取目标字符串中的当前无坐标字符,判断当前无坐标字符是否为预设换行符;s3:如果当前无坐标字符为预设换行符,确定当前无坐标字符的下一字符为列首字符,根据预设第一坐标设置规则为列首字符设置对应的字符坐标,重置当前列中有坐标字符数至初始值;s4:如果当前无坐标字符不为预设换行符,确定当前无坐标字符为列中字符,根据预设第二坐标设置规则为列中字符设置对应的字符坐标,将当前列中有坐标字符数加1;判断有坐标字符数是否等于每列最大字符数;如果是,确定当前无坐标字符的下一字符为列首字符,根据第一坐标设置规则为列首字符设置对应的字符坐标,重置当前列中有坐标字符数至初始值;s5:重复步骤s2-s4,直至目标字符串中的每个字符均设置有对应的字符坐标。
5、进一步的,待显示字符串属性包括单个字符对应的字符宽度;第一坐标设置规则为设置列首字符的纵坐标为0,横坐标为列首字符的上一字符对应的横坐标与字符宽度的和。
6、进一步的,待显示字符串属性包括单个字符对应的字符高度;第二坐标设置规则为设置列中字符的横坐标与列中字符的上一字符对应的横坐标相同,纵坐标为上一字符对应的纵坐标与字符高度的和。
7、进一步的,待显示字符串属性包括字符颜色;根据字符坐标和待显示字符串属性在文字控件中绘制目标字符串的步骤,包括:基于字符颜色和字符坐标,在文字控件中逐个绘制目标字符串。
8、进一步的,获取文字控件对应的控件属性的步骤之前,方法还包括:创建自定义的初始文字控件;初始文字控件继承自安卓的view类;在初始文字控件中,添加settext方法以获取待显示字符串,添加requestlayout方法以对初始文字控件布局,添加onmeasure方法以对初始文字控件的控件属性进行设置,添加ondraw方法以绘制接收到的待显示字符串;确定添加settext方法、requestlayout方法、onmeasure方法和ondraw方法后的初始文字控件为文字控件。
9、第二方面,本发明实施例提供了一种文字纵向显示系统,应用于安卓系统,系统包括:属性获取模块,用于获取文字控件对应的控件属性和待显示字符串对应的待显示字符串属性;目标字符串确定模块,用于基于控件属性和待显示字符串属性,确定目标字符串和每列最大字符数;目标字符串为待显示字符串中文字控件能够完整显示的字符串;字符坐标设置模块,用于遍历目标字符串,基于每列最大字符数,在每一列绘制的字符都排满的原则下,按照从上到下的顺序为目标字符串中的每个字符设置对应的字符坐标;绘制模块,用于根据字符坐标和待显示字符串属性在文字控件中绘制目标字符串。
10、第三方面,本发明实施例提供了电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
11、第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述程序代码使所述处理器执行如上所述的方法。
12、本发明实施例提供了一种文字纵向显示方法、系统和电子设备,应用于安卓系统,方法包括:获取文字控件对应的控件属性和待显示字符串对应的待显示字符串属性;基于控件属性和待显示字符串属性,确定目标字符串和每列最大字符数;目标字符串为待显示字符串中文字控件能够完整显示的字符串;遍历目标字符串,基于每列最大字符数,在每一列绘制的字符都排满的原则下,按照从上到下的顺序为目标字符串中的每个字符设置对应的字符坐标;根据字符坐标和待显示字符串属性在文字控件中绘制目标字符串。该方式可以纵向显示待显示文本,以适应不同场景的展示需求,从而丰富界面展示效果,提升用户使用体验。
13、本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
14、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种文字纵向显示方法,其特征在于,应用于安卓系统,所述方法包括:
2.根据权利要求1所述的文字纵向显示方法,其特征在于,所述控件属性包括控件高度和控件宽度;所述待显示字符串属性包括待显示字符数、单个字符对应的字符高度和字符宽度;
3.根据权利要求1所述的文字纵向显示方法,其特征在于,所述遍历所述目标字符串,基于所述每列最大字符数,在每一列绘制的字符都排满的原则下,按照从上到下的顺序为所述目标字符串中的每个字符设置对应的字符坐标的步骤,包括:
4.根据权利要求3所述的文字纵向显示方法,其特征在于,所述待显示字符串属性包括单个字符对应的字符宽度;
5.根据权利要求3所述的文字纵向显示方法,其特征在于,所述待显示字符串属性包括单个字符对应的字符高度;
6.根据权利要求1所述的文字纵向显示方法,其特征在于,所述待显示字符串属性包括字符颜色;所述根据所述字符坐标和所述待显示字符串属性在所述文字控件中绘制所述目标字符串的步骤,包括:
7.根据权利要求1所述的文字纵向显示方法,其特征在于,所述获取文字控件对应的控件属性的步骤之前,所述方法还包括:
8.一种文字纵向显示系统,其特征在于,应用于安卓系统,所述系统包括:
9.一种电子设备,其特征在于,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-7任一项所述的文字纵向显示方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7任一项所述的文字纵向显示方法。