技术特征:
1.一种Android TextView两端对齐的实现方法,其特征在于,包括:
数据管理器拿到系统属性,从缓存管理器中获取测量数据;
测量管理器从数据管理器中获取各种所需系统属性与文本内容,根据边界算法将文本分行分段测量完毕后,再存入数据管理器与缓存管理器中;
缓存处理器用于缓存测量数据,避免多次测量带来的时间损耗,用最近最少使用算法LRU淘汰策略来淘汰掉使用少的数据,以控制缓存处理器所占大小;
绘制处理器,从数据管理器中获取数据,拿到系统画布与位置,将文本内容按照测量结果绘制到画布中;
手势与事件处理器的处理绘制完成后,区域点击与富文本点击、长按手势与事件。
2.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述数据管理器拿到系统属性,从缓存管理器中获取测量数据,包括:
所述数据管理器从系统获取文本控件属性;
拿到所需处理的文本数据;
从缓存管理器获取缓存数据;
从缓存管理器中获取到缓存数据时,缓存所述获取到的缓存数据。
3.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述数据管理器拿到系统属性,从缓存管理器中获取测量数据,还包括:
所述数据管理器从系统获取文本控件属性;
拿到所需处理的文本数据;
从缓存管理器获取缓存数据;
从缓存管理器中获取到缓存数据时,则解析文本消息,解析所述文本消息为普通文本、点击文本、样式文本;
缓存所述解析出的普通文本、点击文本、样式文本。
4.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述测量管理器从数据管理器中获取各种所需系统属性与文本内容,根据边界算法将文本分行分段测量完毕后,再存入数据管理器与缓存管理器中,包括:
所述测量管理器从数据管理器获取已解析数据;
若无已解析数据,则调用数据管理器,解析并获得已解析数据;
测量每个单位的宽度数据,若一个单位的宽度超过本行,则需要直接换行处理;
将已测量单位与已添加单位相加对比,若未超过本行数据,则继续测量并添加本行数据,若超过本行数据,则换行处理;
直至所有文本字符都已测量完毕;
将测量数据重新整理一遍,计算每个单位在所述行中的空余宽度,并存入缓存管理器中。
5.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述测量管理器从数据管理器中获取各种所需系统属性与文本内容,根据边界算法将文本分行分段测量完毕后,再存入数据管理器与缓存管理器中,还包括:
所述测量管理器从数据管理器获取已解析数据;
若是表情样式文本,则直接计算宽高,加入测量数据中;
测量每个单位的宽度数据,若一个单位的宽度超过本行,则需要直接换行处理;
将已测量单位与已添加单位相加对比,若未超过本行数据,则继续测量并添加本行数据,若超过本行数据,则换行处理;
直至所有文本字符都已测量完毕;
将测量数据重新整理一遍,计算每个单位在所述行中的空余宽度,并存入缓存管理器中。
6.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述测量管理器从数据管理器中获取各种所需系统属性与文本内容,根据边界算法将文本分行分段测量完毕后,再存入数据管理器与缓存管理器中,还包括:
所述测量管理器从数据管理器获取已解析数据;
若是普通文本,则判断是否是英文单词、数字,若是,则将英文单词或数字作为一个单位来测量;
测量每个单位的宽度数据,若一个单位的宽度超过本行,则需要直接换行处理;
将已测量单位与已添加单位相加对比,若未超过本行数据,则继续测量并添加本行数据,若超过本行数据,则换行处理;
直至所有文本字符都已测量完毕;
将测量数据重新整理一遍,计算每个单位在所述行中的空余宽度,并存入缓存管理器中。
7.权利要求1所述的AndroidTextView两端对齐的实现方法,其特征在于,所述缓存处理器用于缓存测量数据,避免多次测量带来的时间损耗,用最近最少使用算法LRU淘汰策略来淘汰掉使用少的数据,以控制缓存处理器所占大小,包括:
所述缓存处理器判断是否已缓存现有文本数据;
获取缓存数据,并存入缓存;
判断缓存管理器是否已满,若有空余,则存入缓存,若已满,则根据LRU算法淘汰掉现有缓存,再存入缓存中。
8.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述绘制处理器,从数据管理器中获取数据,拿到系统画布与位置,将文本内容按照测量结果绘制到画布中,包括:
所述绘制处理器获取文本显示位置,并判断现在展示窗口大小;
获取文本测量数据;
根据文本显示位置与窗口大小,决定所使用文本测量数据范围;
拿到需要绘制的文本行,并开始绘制;
开始逐个字符获取与绘制;
根据数据管理器中解析数据,与现在处理字符的位置,获取绘制所需画笔,并绘制所述字符;
若字符为非数字与英文单词,则判断是否需要插孔处理,若需要,则需要调整字符绘制位置与绘制宽度;
获取字符所处位置的点击状态,若在点击中,则绘制点击背景色,直至每个字符都绘制完毕。
9.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述手势与事件处理器的处理绘制完成后,区域点击与富文本点击、长按手势与事件,包括:
所述手势与事件处理器获取与拦截文本点击事件;
获取文本点击位置;
根据文本点击位置判断是否在点击文本中;
若不在可点击文本中,则需要绘制点击态背景色,并响应外部设置的响应事件;
点击事件完毕,重绘文本,并去除所有点击色与点击状态。
10.如权利要求1所述的Android TextView两端对齐的实现方法,其特征在于,所述手势与事件处理器的处理绘制完成后,区域点击与富文本点击、长按手势与事件,还包括:
所述手势与事件处理器获取与拦截文本点击事件;
获取文本点击位置;
根据文本点击位置判断是否在点击文本中;
若在可点击文本中,则需要绘制可点击文本区域点击太背景色,并响应可点击文本本身的点击事件;
点击事件完毕,重绘文本,并去除所有点击色与点击状态。