画布上的 Android Center 文本

2023-12-11

我正在尝试使用下面的代码显示文本。 问题是文本没有水平居中。 当我设置坐标时drawText,它将文本的底部设置在此位置。我希望绘制文本,以便文本也水平居中。

这是进一步显示我的问题的图片:

Screenshot

@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);
    //canvas.drawRGB(2, 2, 200);
    Paint textPaint = new Paint();
    textPaint.setARGB(200, 254, 0, 0);
    textPaint.setTextAlign(Align.CENTER);
    textPaint.setTypeface(font);
    textPaint.setTextSize(300);
    canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2  , textPaint);
}

请尝试以下操作:

 Paint textPaint = new Paint();
 textPaint.setTextAlign(Paint.Align.CENTER);

 int xPos = (canvas.getWidth() / 2);
 int yPos = (int) ((canvas.getHeight() / 2) - ((textPaint.descent() + textPaint.ascent()) / 2)) ; 
 //((textPaint.descent() + textPaint.ascent()) / 2) is the distance from the baseline to the center.

 canvas.drawText("Hello", xPos, yPos, textPaint);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

画布上的 Android Center 文本 的相关文章

随机推荐

  • XHTML 自闭合元素在 HTML5 中仍然有效吗?

    我想知道是否可以像 HTML5 中的 XHTML 那样编写自关闭元素 例如
  • 我应该使用什么适配器在 ListView 中使用 HashMap

    我想用HashMap的项目列表Adapter for a ListView 我本来打算用ArrayAdapter lt gt 但我不能 因为它正在与List lt gt 仅有的 我应该使用什么适配器 没有预定义的适配器可以呈现 HashMa
  • JSON 未定义值类型

    我遇到了这个 JSON 代码 我注意到它利用了undefined价值 在哪里可以找到有关此值类型的更多信息 tracks codec h264 language undefined id 1 bitrate 785236 content v
  • Hbase与Hive集成:注册Hbase表

    我正在使用 Hortonworks Sandbox 2 0 其中包含以下版本的 Hbase 和 Hive Component Version Apache Hadoop 2 2 0 Apache Hive 0 12 0 Apache HBa
  • 如何分割一串重复字符数量不等的字符串?红宝石

    如果我有一个字符串 例如 aabbbbccdddeffffgg 我想将字符串分割成这个数组 aa bbbb cc ddd e ffff gg 我该怎么办 我知道string split letter count 1 str1 each ch
  • 正则表达式 - 提取域名和 TLD

    我正在尝试从字符串中提取域名和 TLD 如果存在 对于 testing co uk 我想要一个包含值的数组 testing co uk 对于 testing c 我想要一个具有值的数组 testing 对于 test ing co uk c
  • 使用 matplotlib / numpy 进行线性回归

    我正在尝试在我生成的散点图上生成线性回归 但是我的数据采用列表格式 并且我可以找到使用的所有示例polyfit需要使用arange arange但不接受列表 我已经搜索了很多有关如何将列表转换为数组的信息 但似乎没有什么明确的 我错过了什么
  • 使用子选择更改表

    我有两张桌子 一个是字段信息表 另一个是字段数据表 默认情况下 所有字段数据表列都设置为某种类型的文本字段 varchar text 等 我想做的是这个 而不是创建手动 ALTER TABLE 查询 ALTER TABLE field da
  • 仅将元素放入 iframe 内,否则恢复

    EDIT 1 这是drag html 主页
  • 如何在具有多个域的 ASP.NET MVC4 应用程序中允许 Windows 身份验证?

    关于 MVC4 应用程序中的 Windows Auth 的两个问题 如何设置才能针对两个 Windows 域进行身份验证 我正在尝试做的事情 Authorize Roles DOMAINONE Group Name public class
  • 相互依赖的类模板和 std::is_base_of 专业化

    我对以下情况感到有点困惑 我在其中启用了专业化is base of is base of需要正在检查的类型的完整定义可用 但是 正在专门化的类型被用作正在检查的基类的类型的成员 因此两者都需要在另一个之前定义 并且我无法转发声明继承关系 令
  • onActivityResult 中的空意图附加内容

    我有两项活动 首先像这样调用第二个 Intent intent new Intent this Second class startActivityForResult intent 1 返回第二个数据 Intent intent new I
  • 使用 Google Maps SDK 在地图上绘制错误的折线

    我正在尝试使用 Google Maps SDK 在地图上绘制路线 This是我正在调用的 URL 我解析对坐标数组的 JSON 响应 id jsonResponse NSJSONSerialization JSONObjectWithDat
  • 在 C++ 程序中添加不必要的大括号 { } 是否会减慢速度?

    这可能是一个愚蠢的问题 但我对 C 和一般编程很陌生 我在这里找不到答案 我知道在 C 中 在某些情况下是可选的 例如 如果您有一个简单的 if 语句 其中仅执行一个操作 则不需要用 将其括起来 我只是想知道额外的括号是否对程序的速度有任何
  • 使用链接器脚本重命名符号

    是否可以使用链接描述文件或映射文件来重命名符号 我正在尝试修改一些用 C 和 Fortran 混合编写的代码 以便它可以在 Linux 上与多个 Fortran 编译器一起工作 目前它是为 Solaris Studio 编译器编写的 并且启
  • Volley - NetworkImageView 有时不显示错误图像?

    所以我决定尝试一下新的排球库如上所示谷歌IO 2013 我在使用简单的解决方案时尝试过NetworkImageView在一个上显示多个图像GridView 它运行良好并显示图像 但如果我让它下载图像 然后在下载过程中关闭 WiFi 它不会显
  • Visual Studio 2010 Professional Beta 2 上的 Windows Mobile 6 Standard SDK 刷新安装问题

    当我安装Windows Mobile 6 标准 SDK 更新我收到错误 未安装 Visual Studio 2005 SP1 或更高版本 我安装了 Visual Studio 2010 Professional Beta 2 请你告诉我如何
  • 使用 props 以纯文本或数组访问对象路径

    考虑以下对象和存储在对象内的值的路径 var obj a 1 b a x 2 b 3 c 4 var path b a x 获取对象路径中的内容的最佳方法 最佳性能 是什么 使用 eval path obj concat path var
  • vba中dim和set有什么区别

    请原谅我 我是 VBA 新手 有时我用 Dim r as Range r Range A1 其他时候我用 Set r Range A1 有什么不同 我什么时候应该使用什么 没有理由使用set除非引用对象引用 最好只在这种情况下使用它 对于所
  • 画布上的 Android Center 文本

    我正在尝试使用下面的代码显示文本 问题是文本没有水平居中 当我设置坐标时drawText 它将文本的底部设置在此位置 我希望绘制文本 以便文本也水平居中 这是进一步显示我的问题的图片 Override protected void onDr