我如何分割长文本,以适应Textview Android



例如,我有一个很长的文本,我在屏幕中央有一个文本视图,具有以下属性:

<TextView
android:id="@+id/conftextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|left"
android:minHeight="350dp"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:textColor="#FFFFFF" />

现在,我创建了一个OnClick Listener,这样每次点击文本都会改变,并从最后结束的地方开始。

这里有一些限制文本视图可以是squareorheight <</strong宽度>但不height>. 因此,我认为每个视图正好有22行就解决了我的问题。

但是,我如何将内容拆分为22行呢?我试图使用单词拆分并考虑每个视图200个单词,但如果有许多行中断,则此逻辑失败。

/*
Process and split text into 200 worded parts
*/
protected TreeMap<Integer,String> processText(String inputText, int maxWords){
TreeMap<Integer,String> multiPageText= new TreeMap<Integer,String>();
String words[] = inputText.split(" ");
int wordCount = words.length;
int keyCount = (int) Math.ceil(wordCount/(double)maxWords);

for (int i = 0; i < keyCount;i++){
StringBuilder sb = new StringBuilder();
for (int j=i*maxWords;j<((i+1)*maxWords < wordCount ? (i+1)*maxWords : wordCount);j++){
sb.append(words[j]);
sb.append(" ");
}
multiPageText.put(i, sb.toString().trim());
}
//        System.out.println(keyCount);
return multiPageText;
}

使用上面返回的地图,我正在处理不同的页面,但我正在寻找一种方法,我可以在22行精确地分割文本,无论有多少换行符或文本有多长。

任何线索将不胜感激。TIA。

我希望我能把这个作为一个评论,但是这里有一个非常好的答案,详细介绍了你正在寻找什么在渲染到布局之前获取文本视图的高度

最新更新