首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android的作图文本对象FontMetrics的介绍及绘制文本

2012-09-10 
Android的绘制文本对象FontMetrics的介绍及绘制文本一。Android绘制文本对象FontMetrics介绍FontMetrics对

Android的绘制文本对象FontMetrics的介绍及绘制文本
一。Android绘制文本对象FontMetrics介绍

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

   ?FontMetrics.top
   ?FontMetrics.ascent
   ?FontMetrics.descent
   ?FontMetrics.bottom
  



   实例JAVA代码如下:
   Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG);
   textPaint.setTextSize( 35);
   textPaint.setColor( Color.WHITE);

   // FontMetrics对象
   FontMetrics fontMetrics = textPaint.getFontMetrics();
   String text = "abcdefghijklmnopqrstu";

   // 计算每一个坐标
   float baseX = 0;
   float baseY = 100;
   float topY = baseY + fontMetrics.top;
   float ascentY = baseY + fontMetrics.ascent;
   float descentY = baseY + fontMetrics.descent;
   float bottomY = baseY + fontMetrics.bottom;

   // 绘制文本
   canvas.drawText( text, baseX, baseY, textPaint);

   // BaseLine描画
   Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
   baseLinePaint.setColor( Color.RED);
   canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint);

   // Base描画
   canvas.drawCircle( baseX, baseY, 5, baseLinePaint);

   // TopLine描画
   Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
   topLinePaint.setColor( Color.LTGRAY);
   canvas.drawLine(0, topY, getWidth(), topY, topLinePaint);

   // AscentLine描画
   Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
   ascentLinePaint.setColor( Color.GREEN);
   canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint);

   // DescentLine描画
   Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
   descentLinePaint.setColor( Color.YELLOW);
   canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint);

   // ButtomLine描画
   Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
   bottomLinePaint.setColor( Color.MAGENTA);
   canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint);

二。繪製文本。

1.TextUtil 類






3. DrawText  Activity.

package com.wistron.test.DrawText;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;public class DrawText extends Activity {    /** Called when the activity is first created. */ private MyView mv; @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  mv = new MyView(this);  setContentView(mv); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) {  mv.onKeyDown(keyCode, event);  return super.onKeyDown(keyCode, event); }}

热点排行