如何在Android中超出画布高度时移动绘制的文本?

时间:2016-04-01 13:55:31

标签: java android canvas text paint

我在Android中构建了一个绘图应用程序,我一直坚持这个;当Text过大时,它会在Canvas宽度之外绘制,现在已经解决了,但问题是当文本超出画布高度时,我该如何计算整个文字高度,如果它熄灭,移动它,以便它可以适应屏幕?

我已经尝试了两个画布,并在第二个画布上绘制,所以如果它出来我只使用canvas.translate(x,y),但仍然无效。

enter image description here

2 个答案:

答案 0 :(得分:0)

Android API具有一组布局的类(包android.text),用于实现文本的呈现。

示例:

int maxWitdh; // mam witdh of text
StaticLayout layout = new StaticLayout(text, mPaint, maxWidth, Alignment.ALIGN_NORMAL, 1, 0, true);

int height = layout.getHeight();

layout.draw(canvas);

答案 1 :(得分:0)

想出来,使用StaticLayout,我得到了整个文本的高度,并将其与屏幕的高度进行了比较。

if (layoutHeight > height - coordinateY){
    secondCanvas.translate(getCoordX(), height-layoutHeight);
}

现在它永远不会超出高度。