`
fonter
  • 浏览: 869281 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

androd之绘制文本(FontMetrics)

阅读更多

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

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

 

FontMetrics对象

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

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

 

该图片将如下

 

 

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);

 

推荐:

android之显示Log

androd之绘制文本(FontMetrics

android之获取信息终端

iWidsets 发布1.8.1版本(20090920)

java多线程设计wait/notify机制 (synchronized与对象锁)

android下的创建和读取资源文件

 

  • 大小: 5.2 KB
分享到:
评论
1 楼 pure 2009-09-22  
直接用TextPaint不是更方便?

相关推荐

    Android编程之绘制文本(FontMetrics)实现方法

    本文实例讲述了Android编程之绘制文本(FontMetrics)实现方法。分享给大家供大家参考,具体如下: Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。 它的思路和java.awt.FontMetrics的基本相同。 ...

    Android FontMetrics测试

    4. **绘制文本**: 在自定义View的`onDraw()`方法中,使用`Canvas.drawText()`函数绘制文本,同时应用之前计算的位置信息。 5. **验证效果**: 运行应用程序并查看文本的显示效果,确保文本在View中的布局正确无误。 6...

    Android代码-FontMetrics Viewer

    `FontMetrics Viewer`是一个实用工具,它可以帮助开发者深入了解Android字体的尺寸和特性,以便更好地控制文本的显示效果。本项目主要涉及以下几个Android代码相关的知识点: 1. **自定义View**: `FontMetrics ...

    Android 自定义View绘制居中文本

    3. **绘制文本**:在`onDraw()`方法中,使用`canvas.drawText()`方法来绘制文本。传入计算好的坐标和要显示的文本,即可实现居中效果。 ```java @Override protected void onDraw(Canvas canvas) { super.onDraw...

    Android使用FontMetrics对象计算位置坐标

    在Android开发中,当涉及到在Canvas上绘制文本时,精确地定位文本的位置是至关重要的。`FontMetrics`对象就是这样一个工具,它提供了有关字体在特定大小下各部分位置的信息,帮助开发者准确计算文本的坐标。本文将...

    Android中FontMetrics的几个属性全面讲解

    在Android开发中,当涉及到文字绘制时,了解`FontMetrics`是非常重要的。`FontMetrics`对象提供了关于字体在屏幕上如何布局的关键信息。本文将详细解析`FontMetrics`的几个核心属性,帮助开发者更好地理解和运用它们...

    Android字体宽高的获取

    在Android开发中,有时我们需要对字体的宽高进行精确的控制,例如在自定义View或者绘制文本时。本文将详细讲解如何在Android中获取字体的宽度和高度。 首先,我们来理解一下Android中的字体概念。在Android系统中,...

    Android精确测量文本宽高及基线位置的方法

    首先,我们要了解Android中用于绘制文本的基本组件:Canvas、Paint以及它们如何相互作用。Canvas提供了在屏幕上绘制图形和文本的接口,而Paint则是定义这些元素样式的关键,包括字体大小、颜色、样式等。 1. **测量...

    Android文字基线Baseline算法的使用讲解

    在Android开发中,当涉及到自定义视图或者图形绘制时,文字的精准定位变得尤为重要。本文主要探讨的是Android中的文字基线(Baseline)算法及其在实际应用中的使用方法。 首先,Baseline是绘制文字时的一个关键概念...

    Android字符滚动控件Ticker的实现

    Paint.FontMetrics fm = getPaint().getFontMetrics(); return Math.abs(fm.bottom - fm.top); } ``` 8. 最后,在XML布局文件中使用自定义的Ticker控件: ```xml android:id="@+id/ticker_view" android:...

    android canvas drawText()文字居中效果

    `drawText()`方法是Canvas的一个关键函数,用于在指定位置绘制文本。本篇文章将深入探讨如何利用`drawText()`实现文字居中效果。 首先,`drawText(String text, float x, float y, Paint paint)`方法的参数含义如下...

    android自定义View实现跑马灯效果

    自定义View的核心是重写`onDraw()`方法,其中使用`Canvas`对象的`drawText()`方法绘制文本。同时,借助Handler来定时刷新界面,改变文字绘制的X轴位置,从而模拟出滚动效果。 以下是实现跑马灯效果的关键步骤: 1....

    Android自定义漂亮的圆形进度条

    最后,使用mTextPaint在圆心位置绘制进度文本。 此外,我们需要添加一个`setProgress(int progress)`方法,以便在运行时改变进度条的值。此方法会更新mProgress变量,并调用`invalidate()`来重新绘制视图,从而实时...

    Android Canvas的drawText()与文字居中方案详解

    在Android开发中,Canvas是用于在屏幕上绘制图形和文本的核心...理解`FontMetrics`类的属性和`drawText()`的用法,是自定义View时绘制文本的关键。通过实践和实验,开发者可以熟练掌握这些技巧,创造出丰富的用户界面。

    Android 解决TextView排版参差不齐的问题

    // 调整并绘制文本 private void drawScaledText(Canvas canvas, int lineStart, String line, float lineWidth) { // 实现文字的两端对齐算法,这里需要计算每个空格的宽度,然后按比例分配 // ... } } ``` ...

    Android Canvas drawText文字居中的一些事(图解)

    在绘制文字时,需要了解 FontMetrics 类,这个类是 Paint的一个内部类,主要定义了绘制文本时的一些关键坐标位置。FontMetrics 类有五个成员变量:top、ascent、baseline、descent、bottom 和 leading。这些变量的值...

    Android实现用文字生成图片的示例代码

    在Android开发中,有时我们需要将文字转换为图片,这样的需求可能出现在生成个性化海报、动态分享图或者信息可视化等场景。本文将详细介绍如何在Android平台上实现这个功能,通过一个示例代码来阐述整个过程。 首先...

Global site tag (gtag.js) - Google Analytics