zoukankan      html  css  js  c++  java
  • androd之绘制文本(FontMetrics)[转]

    转自:http://fonter.iteye.com/blog/474526

    Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。

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

    FontMetrics对象

    它以四个基本坐标为基准,分别为:

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

    该图片将如下

    Java代码  收藏代码
      1. Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG);  
      2. textPaint.setTextSize( 35);  
      3. textPaint.setColor( Color.WHITE);  
      4.   
      5. // FontMetrics对象  
      6. FontMetrics fontMetrics = textPaint.getFontMetrics();  
      7.   
      8. String text = "abcdefghijklmnopqrstu";  
      9.   
      10. // 计算每一个坐标  
      11. float baseX = 0;  
      12. float baseY = 100;  
      13. float topY = baseY + fontMetrics.top;  
      14. float ascentY = baseY + fontMetrics.ascent;  
      15. float descentY = baseY + fontMetrics.descent;  
      16. float bottomY = baseY + fontMetrics.bottom;  
      17.   
      18. // 绘制文本  
      19. canvas.drawText( text, baseX, baseY, textPaint);  
      20.   
      21. // BaseLine描画  
      22. Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);>  
      23. baseLinePaint.setColor( Color.RED);  
      24. canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint);  
      25.   
      26. // Base描画  
      27. canvas.drawCircle( baseX, baseY, 5, baseLinePaint);  
      28.   
      29. // TopLine描画  
      30. Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);  
      31. topLinePaint.setColor( Color.LTGRAY);  
      32. canvas.drawLine(0, topY, getWidth(), topY, topLinePaint);  
      33.   
      34. // AscentLine描画  
      35. Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);  
      36. ascentLinePaint.setColor( Color.GREEN);  
      37. canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint);  
      38.   
      39. // DescentLine描画  
      40. Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);  
      41. descentLinePaint.setColor( Color.YELLOW);  
      42. canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint);  
      43.   
      44. // ButtomLine描画  
      45. Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);  
      46. bottomLinePaint.setColor( Color.MAGENTA);  
      47. canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint);
  • 相关阅读:
    C#画K线图代码
    SQL查询效率:100w数据查询只需要1秒钟
    全程图解 手把手教你做RAID磁盘阵列
    炒股高手实战技巧
    数据库主键设计之思考
    如何做磁盘阵列和磁盘镜象
    股海心法—浓缩股市精华
    如何做磁盘阵列
    SQL Server 2005实现负载均衡的详细介绍!
    K线六种形态
  • 原文地址:https://www.cnblogs.com/androidwsjisji/p/2552820.html
Copyright © 2011-2022 走看看