【问题标题】:Centering text(String) in a surface view在表面视图中居中文本(字符串)
【发布时间】:2013-10-17 16:01:18
【问题描述】:

如何在表面视图中将字符串水平居中?

我不想

c.drawText(""+score, c.getWidth()/2, y);

因为这将显示从屏幕中心开始的文本。

我想要类似的东西

c.drawText(""+score, c.getWidth()/2-score.length()/2*fontSize, y);

有解决这个问题的方程式吗?如果没有,还有其他方法可以在表面视图中居中文本吗?

顺便说一句,我使用的是自定义字体,我不知道这是否会改变任何东西。如果您需要了解有关字体的任何额外信息,请发表评论。

【问题讨论】:

    标签: android string canvas surfaceview centering


    【解决方案1】:

    您不必手动计算。您只需要在 Paint 对象中指定一些额外的参数:

    Paint paint = new Paint(); 
    paint.setColor(textColor); 
    paint.setTextSize(28); 
    paint.setTypeface(typeface); 
    paint.setTextAlign(Align.CENTER);
    

    关键是你需要指定Align.CENTER,这样你就可以调用:

    canvas.drawText("CENTERED TEXT", canvas.getWidth()/2, posY, paint);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 2020-04-21
      • 2013-04-19
      • 1970-01-01
      • 2013-09-05
      • 2012-03-12
      • 2012-07-18
      相关资源
      最近更新 更多