我正在this question中实现messureText方法,以便在viewpager中呈现之前将长文本分隔为具有指定大小的页面。我正在做一个带有增量字符数的while循环来获得所需的文本块,但它似乎不是最好的解决方案。是否有任何建议可以改善此计算的性能? p / s:我指的是Wattpad应用看到它做得这么快但不知道怎么做?
答案 0 :(得分:6)
StaticLayout或DynamicLayout可以做到这一点。
Android使用(Boring
| Static
| Dynamic
)布局类来测量和包装文本,这些类构造函数将CharSequence
作为输入参数,因此样式文本(包含跨度,偶数{ {1}})是可以接受的。
您可以根据视图或屏幕计算ImageSpan
和pageWidth
,pageHeight
和两个TextPaint
参数必须等于您的目标lineSpacing
,这里是我的代码:
TextView
答案 1 :(得分:0)
您可以在代码中使用BufferedReader
。您可以将字符串留在那里并通过此阅读器操作。比首先创建一个字符串更有效。