我需要绘制文本,水平填充给定的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/

10-10 20:06