如何根据文本大小设置获取文本的顶行?

时间:2014-07-04 09:20:44

标签: android android-canvas paint textview

我正在开发一个用于在3行内写入文本的应用程序。我可以借助此代码获取文本的基线。

        mRect r = new Rect();
          for (int i = 1; i < count; i++) {

        int baseline = getLineBounds(i, r);

        Log.e("baseline","baseline:"+baseline);
        canvas.drawLine(r.left, baseline, r.right, baseline, paint);
      }

现在我能够绘制3条线并使用此代码

编写与此行对齐的文本
     for (int i = 1; i < count; i++) {

        int baseline = getLineBounds(i, r);

        Log.e("baseline","baseline:"+baseline);
        canvas.drawLine(r.left, baseline, r.right, baseline, paint);

        canvas.drawLine(r.left, r.top+10, r.right, r.top+10, paint);

        canvas.drawLine(r.left, (baseline+r.top+10)/2, r.right, (baseline+r.top+10)/2, paint1);

    }

问题是当我在不同分辨率的手机上尝试同样的事情时,一切都不对齐,但基线仍然完全对齐,所以我想知道是否有另一种方法来对齐文本的顶线。我的textsize是35 sp

非常感谢任何帮助

此致

0 个答案:

没有答案