为文本设置 Paint

文字绘图设置

  • setTypeface(Typeface typeface) 设置字体。见字体
  • setTextSize(int size) 设置字体大小(以像素为单位)。
  • setColor(int color) 设置绘画颜色,包括文本颜色。你也可以使用 setARGB(int a, int r, int g, int bsetAlpha(int alpha)
  • setLetterSpacing(float size) 设置字符间的间距,单位为 ems。默认值为 0,负值将收紧文本,而正值将扩展它。
  • setTextAlign(Paint.Align align) 设置相对于其原点的文本对齐方式。Paint.Align.LEFT 将它绘制到原点的右侧,RIGHT 将它绘制到左侧,CENTER 将它绘制在原点的中心(水平)
  • setTextSkewX(float skewX) 这可以被认为是伪斜体。SkewX 表示文本底部的水平偏移。 (使用 -0.25 表示斜体)
  • setStyle(Paint.Style style) 填写文本 FILL,笔划文本 STROKE,或两者 FILL_AND_STROKE

请注意,你可以使用 TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, size, getResources().getDisplayMetrics()) 将 SP 或 DP 转换为像素。

测量文本

  • float width = paint.measureText(String text) 测量文字的宽度
  • float height = paint.ascent() 测量文本的高度
  • paint.getTextBounds(String text, int start, int end, Rect bounds 存储文本尺寸。你已经分配了 Rect,它不能为 null:
 String text = "Hello world!";
 Rect bounds = new Rect();
 paint.getTextBounds(text, 0, text.length(), bounds);

还有其他测量方法,但这三种方法应该适合大多数用途。