嘿那里 - 我正在创建一个动态壁纸,其中包含通过TextPaint和DynamicLayout对象直接绘制到画布的文本。在我的DynamicLayout对象中,我将宽度设置为画布宽度,现在我正在寻找一种方法来包装延伸到画布之外的文本。这是我的文本设置代码:
//token is my large text string
TextPaint tp = new TextPaint();
Layout sl = new DynamicLayout(token, tp, (int) canvasWidth, Layout.Alignment.ALIGN_NORMAL, 0, 0, true);
canvas.translate(startPositionX , startPositionY);
sl.draw(canvas);
如果它超出canvasWidth,我该如何包装它?任何帮助表示赞赏!
答案 0 :(得分:0)
几个小时后得到这个......看着StringTokenizer,从我的字符串中找到最长的单词并将剩余的文本包装到那个宽度。
// Assume s contains a string of words
String longestWord = "";
StringTokenizer st = new StringTokenizer(s, " ,\t");
while (st.hasMoreTokens()) {
String w = st.nextToken();
if (w.length() > longestWord.length()) {
longestWord = w;
}
}
float textWidth = tp.measureText(longestWord+" ");
Layout sl = new DynamicLayout(token, tp, (int) textWidth, Layout.Alignment.ALIGN_CENTER, lineSpacing, 0, true);