我正在制作一个自定义字段,表示图像及其附近的标签。
我按graphics.drawBitmap(...)
Nw的文字,我正在使用graphics.drawText(String, x, y);
,但如果文字大于显示,它不会返回到该行。我试图添加\n
,但这并没有解决问题。
如何绘制可在多行上展开的文字?
谢谢,
答案 0 :(得分:3)
我找到了问题的解决方案。您可以在下面找到对此问题感兴趣的人:
public void drawMultipleLines(Graphics graphics, String text, int X, int Y, int XavailableSpace) {
String[] texts = UiSpliter.split(text, " "); //UiSpliter is a class that will split the string into string array based on the ' ' character
int x = X;
int y = Y;
for (int i = 0 ; i < texts.length ; i ++) {
if (x + getFont().getAdvance(texts[i]) - X > XavailableSpace) {
if (!(x == X)) {
x = X;
y = y + getFont().getHeight();
}
}
graphics.drawText(texts[i] + " ", x, y);
x += getFont().getAdvance(texts[i] + " ");
}
}
答案 1 :(得分:1)
答案 2 :(得分:-1)
您可以使用AttributedCharacterIterator,TextLayout和LineBreakMeasurer类,如本Java Tutorial中所述。