`

关于drawText文字居中的山寨做法

 
阅读更多

      drawText画字符串是底端对齐的。所以要特别注意这点,不然画文字可能画到其它地方而误以为没有画出来。

 

      如果底端对齐的话:底端的Y坐标是:(行高-字体高度)/2+字体高度 ,但是字符串并不居中,经过测试如果:(行高-字体高度)/2+字体高度-6 ,就稍微居中了一点。

 

     以上的方法只是一个取巧的做法,网上也没有找到设置文字居中的方法。

 

     如果你有看到标准的做法,请共享。。。

 

分享到:
评论
1 楼 csj2017 2011-12-07  
默认的应该不是底对齐吧!是baseLine对齐,离底端有段距离,所以按上面办法会有误差。加上那段距离应该就行了:
FontMetrics fontMetrics = mPaint.getFontMetrics();
float fontTotalHeight = fontMetrics.bottom - fontMetrics.top;
float offY = fontTotalHeight / 2 - fontMetrics.bottom;
float newY = baseY + offY;
canvas.drawText(text, baseX, newY, paint);

相关推荐

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

    本文将通过示例代码,详细介绍关于 Android Canvas drawText 文字居中的一些事。 首先,在实现自定义控件的过程中,常常会有绘制居中文字的需求。在绘制文字之前,需要将坐标原点移动到控件中心,然后绘制 x、y 轴...

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

    本文将深入解析`drawText()`的用法及其与文字居中相关的策略。 首先,我们来看一下`drawText()`的几个重载方法: 1. `drawText(String text, float x, float y, Paint paint)` 2. `drawText(String text, int ...

    android canvas drawText()文字居中效果

    本篇文章将深入探讨如何利用`drawText()`实现文字居中效果。 首先,`drawText(String text, float x, float y, Paint paint)`方法的参数含义如下: - `text`:要绘制的文本字符串。 - `x`:文本的起始绘制点的x坐标...

    Android TextView的图片和文字居中探索

    本文将深入探讨如何在Android中实现TextView的图片和文字居中。 首先,我们需要理解TextView的基本属性。`android:gravity`属性用于设置内容(包括文字和图片)在TextView内部的对齐方式,它可以是顶部、底部、左边...

    解决DrawText中文字与字母之间自动换行

    然而,在处理包含中英文混合文本时,DrawText默认的行为可能无法满足自动换行的需求,尤其是在固定宽度的显示环境中,中文字与英文字母之间的换行逻辑需要特别处理。 在上述代码片段中,`CTextRender`类的`Discount...

    编辑框重绘 文字居中

    编辑框通常用于用户输入文本,但默认情况下,它并不支持文字居中显示。为了实现“编辑框重绘 文字居中”的效果,我们需要深入理解CEdit类的工作原理,并对其进行适当的重载。 CEdit类是MFC对Windows API中的EDIT ...

    自定义QComboBox,实现文字居中显示

    然而,有时候为了满足界面设计的需求,我们可能希望QComboBox的文字能够居中显示。本文将详细介绍如何自定义QComboBox,实现文字居中显示。 首先,我们需要了解QComboBox的基本结构。QComboBox由两部分组成:一个可...

    VC组合框文本垂直居中

    在这个函数中,我们可以根据需要画出每个列表项的背景、文字以及其他元素,例如高亮效果、选中效果等。 6. **边框色设置**:修改组合框的边框颜色可以通过设置控件的风格,或者在自绘过程中额外绘制边框来实现。...

    graphics 画文字 (C# VS2008 ) DrawText

    graphics 画文字 C# VS2008 DrawText

    Android DrawText字符串的绘制

    Android DrawText 字符串的绘制是 Android 平台上的一种常见的绘制技术,用于在屏幕上显示文字信息。在 Android 平台上,DrawText 字符串的绘制是通过使用 Canvas 和 Paint 对象来实现的。 在上面的代码中,我们...

    DrawText Api code

    在实际应用中,你可以根据需求调整`DrawTextFlags`中的标志位,如设置文本对齐方式(左对齐、居中或右对齐)、换行模式等。同时,注意处理好文本的编码问题,因为`DrawText`函数默认使用Unicode编码。 此外,`...

    No such filter:drawtext MacOS上包含drawtext的ffmpeg

    No such filter: 'drawtext' MacOs:node+ffmpeg+web 利用node+ffmpeg 在浏览器上播放rtsp流,所需要的ffmpeg;一般官网上下载的和默认自己编译的都不包含 drawtext filter;该工具包包含,可直接使用 macOs可直接...

    CDC::DrawTextCDC::DrawText

    压缩包内的"DrawText.avi"可能是一个视频教程,详细演示了如何使用`CDC::DrawText`来绘制文本,而"说明.txt"可能是配合视频的文字说明或者步骤指南,包含了具体实现的代码示例和注意事项。 总的来说,`CDC::...

    Android TextView drawText BaseLine理解,设置内容垂直、水平居中

    1. getHeight/2 设置为 drawText 绘制坐标,不能居中  上代码XML: Java代码: package com.denganzhi.cusomerwidget.View; import android.content.Context; import android.graphics.Canvas; import android....

    利用drawtext给视频加字幕

    例如,`x=W-w/2`和`y=H-h/2`将字幕居中显示,其中`W`和`H`是视频宽度和高度,`w`和`h`是字幕框的宽度和高度。 6. **其他样式**:还有其他参数可以调整,如`fontcolor`(描边颜色)、`box`(是否显示背景框)、`...

    Directx8_DrawText

    这篇内容将深入探讨如何使用DirectX 8的`DrawText`函数来实现2D文字的绘制。 首先,我们要理解DirectX 8的基本架构。它主要由以下几个部分组成:Direct3D(3D图形)、DirectDraw(2D图形)、DirectInput(输入设备...

    MFC-TextOut.rar_DrawText_DrawText Visual C++_MFC

    例如,DT_CENTER可以使文本居中,DT_VCENTER使文本垂直居中,DT_LEFT|DT_VCENTER则使文本左对齐并垂直居中。 在MFC环境中,通常会创建一个`CDC`对象,然后使用这个对象来调用`TextOut`或`DrawText`。例如,在响应WM...

Global site tag (gtag.js) - Google Analytics