[发明专利]一种解决Textview控件自动换行问题的方法和装置在审
申请号: | 201910794760.7 | 申请日: | 2019-08-27 |
公开(公告)号: | CN112445551A | 公开(公告)日: | 2021-03-05 |
发明(设计)人: | 黄俊 | 申请(专利权)人: | 成都鼎桥通信技术有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 蒋欢;王琦 |
地址: | 610041 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解决 textview 控件 自动 换行 问题 方法 装置 | ||
本申请公开了一种解决Textview控件自动换行问题的方法,该方法包括:获取Textview控件的宽度,并测量需要显示的文本的总宽度;计算需要显示的文本的总宽度和Textview控件的宽度的商,判断显示所述文本所需要的行数;在每一行绘制的字符都排满的原则下,按照从左到右或者从右到左的顺序,单独绘制每一行的文本。本申请还公开了一种对应的装置。应用本申请公开的技术方案,能够解决Textview控件在没排满一行就自动换行的问题。
技术领域
本申请涉及安卓界面开发技术领域,特别涉及一种解决Textview控件自动换行问题的方法和装置。
背景技术
安卓界面开发中一个最常用的基础控件就是Textview,Textview主要用于承担文本显示的任务,几乎所有App中都不可避免地会使用该控件。
一款应用程序(App)的界面显示是否友好,会让用户对这款App产生一种最直观的感受,也就直接关系到用户是否继续愿意使用这款应用程序,而Textview作为被使用最频繁的控件之一,所承担的重要性也就不言而喻。因此,能够最合理地使用该控件达到一种最友好的显示效果是非常重要的。
目前,安卓原生提供的Textview存在一个问题就是:在多行文本显示中,文本包含中英文或者标点符号,Textview可能会出现文本并未排满一行就自动换行的情况。这个问题目前并没有特别完善的解决方案,只是有一些针对某一些显示场景下的特殊处理方法。例如,将Textview中文本的字符全角化,去除特殊字符或将所有中文标号替换为英文标号,但是这些方法都不能很好地解决上述问题。
Textview在多行文本显示中的问题主要包括:
(1)TextView在显示中文的时候,标点符号不能显示在一行的行首和行尾。如果一个标点符号刚好在一行的行尾,该标点符号就会连同该标点符号的前一个字符被换行到下一行进行显示,从而导致上一行未排满就自动换行。
(2)TextView显示英文单词的时候,单词不能被隔断显示在不同的两行中。如果某一行剩余的空间不够,不足以显示完该行中最后一个英文单词,那么,该英文单词将被换行到下一行进行显示,这将导致上一行未排满就自动换行,而上一行的后半部分将存在一块空白。
(3)TextView显示中文、数字、英文的混合型文本的时候,存在前后字符类型不同而自动换行的问题。
存在问题的原因是由于安卓系统原生的Textview控件对不同语言的字符处理存在技术缺陷。
为解决上述技术缺陷,需要支持中文、英文、其他小语种、以及特殊标点符号等显示都符合预期的排列,每一行都从左到右尽可能排满。
发明内容
本申请提供了一种解决Textview控件自动换行问题的方法和装置,以使屏幕上能够显示的字符数量更多。
本申请公开了一种解决Textview控件自动换行问题的方法,包括:
获取Textview控件的宽度,并测量需要显示的文本的总宽度;
计算需要显示的文本的总宽度和Textview控件的宽度的商,判断显示所述文本所需要的行数;
在每一行绘制的字符都排满的原则下,按照从左到右或者从右到左的顺序,单独绘制每一行的文本。
较佳的,该方法还包括:
如果显示所述文本所需要的行数大于所述Textview空间的总行数,则在选定的位置插入省略号,对所述文本中的部分内容进行省略。
较佳的,通过子类继承父类,然后重写onDraw函数的方法来对字符的显示进行控制,实现所述绘制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都鼎桥通信技术有限公司,未经成都鼎桥通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910794760.7/2.html,转载请声明来源钻瓜专利网。