我需要绘制文本,水平填充给定的Rect()(只应拉伸空格)。除了计算每个单词的宽度,还有什么方法吗?
最佳答案
是没有问题。在您的onDraw(Canvas c)函数中,使用以下代码:
public void onDraw(Canvas canvas) {
TextPaint mTextpaint = new TextPaint();
mTextPaint.setAntiAlias(true);
mTextPaint.setTextSize(14);
mTextpaint.setColor(Color.MAGENTA);
final String mText = "Hello World";
final int maxTextWidth = 40;
DynamicLayout dl = new DynamicLayout(mText, mTextPaint,
maxTextWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 1.0f, false);
canvas.translate(0, 100);
dl.draw(canvas);
}
本示例创建一个具有最大宽度的TextLayout(DynamicLayout),配置的TextPaint和一个文本。它在画布对象上绘制居中文本“ Hello World”,有关TextLayouts的更多文档,您可以使用Android开发文档;)
我的评论:示例代码未进行优化,您可以在所有其他函数中设置Textpaint,并设置Text和maxTextWidth-由于有时会大量使用onDraw()事件,因此最好将代码放在另一个函数中经常使用的函数,例如类构造函数等。
关于android - 使文本适合位图宽度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9140601/