歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之繪制文本(FontMetrics) 獲取文本高度

Android之繪制文本(FontMetrics) 獲取文本高度

日期:2017/3/1 11:11:04   编辑:Linux編程

Canvas 作為繪制文本時,使用FontMetrics對象,計算位置的坐標。

它的思路和java.awt.FontMetrics的基本相同。

FontMetrics對象

它以四個基本坐標為基准,分別為:

・FontMetrics.top
・FontMetrics.ascent
・FontMetrics.descent
・FontMetrics.bottom

該圖片將如下

  1. Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG);
  2. textPaint.setTextSize( 35);
  3. textPaint.setColor( Color.WHITE);
  4. // FontMetrics對象
  5. FontMetrics fontMetrics = textPaint.getFontMetrics();
  6. String text = "abcdefghijklmnopqrstu";
  7. // 計算每一個坐標
  8. float baseX = 0;
  9. float baseY = 100;
  10. float topY = baseY + fontMetrics.top;
  11. float ascentY = baseY + fontMetrics.ascent;
  12. float descentY = baseY + fontMetrics.descent;
  13. float bottomY = baseY + fontMetrics.bottom;
  14. // 繪制文本
  15. canvas.drawText( text, baseX, baseY, textPaint);
  16. // BaseLine描畫
  17. Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);>
  18. baseLinePaint.setColor( Color.RED);
  19. canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint);
  20. // Base描畫
  21. canvas.drawCircle( baseX, baseY, 5, baseLinePaint);
  22. // TopLine描畫
  23. Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
  24. topLinePaint.setColor( Color.LTGRAY);
  25. canvas.drawLine(0, topY, getWidth(), topY, topLinePaint);
  26. // AscentLine描畫
  27. Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
  28. ascentLinePaint.setColor( Color.GREEN);
  29. canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint);
  30. // DescentLine描畫
  31. Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
  32. descentLinePaint.setColor( Color.YELLOW);
  33. canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint);
  34. // ButtomLine描畫
  35. Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
  36. bottomLinePaint.setColor( Color.MAGENTA);
  37. canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint);
Copyright © Linux教程網 All Rights Reserved