Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据文本大小集获取文本的顶行?_Android_Android Canvas_Paint_Textview - Fatal编程技术网

Android 如何根据文本大小集获取文本的顶行?

Android 如何根据文本大小集获取文本的顶行?,android,android-canvas,paint,textview,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, baselin

我正在开发一个应用程序,用于在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);
      }
mRect r=new Rect();
对于(int i=1;i
现在我能够画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);

    }
for(int i=1;i
问题是,当我在不同分辨率的手机上尝试相同的方法时,所有东西都不对齐,但是基线仍然完全对齐,所以我想知道是否有其他方法可以对齐文本的背线。我的文本大小是35 sp

非常感谢您的帮助


关于使用StaticLayout Classis,我不熟悉这个类,你能解释一下吗?谢谢你的回答,请阅读它的文档