簡體   English   中英

StaticLayout獲取顯示的字符數

[英]StaticLayout get number of displayed characters

我寫了一本書閱讀器。 為了在我的頁面上正確顯示文本,我需要知道,可以顯示多少個字符?

TextPaint mTextPaint=new TextPaint();
      mTextPaint.setTextSize(16);

      StaticLayout mTextLayout = new StaticLayout(newText, mTextPaint, canvas.getWidth() - 20, Alignment.ALIGN_NORMAL, 1.5f, 0.0f, false);
      canvas.save();


      int x = 10, y = 50;
          y += p.ascent() + p.descent();

          canvas.translate(x, y);

          mTextLayout.draw(canvas);
          canvas.restore();

首先,您需要獲得最后一條可見線。 您可以使用Layout.getLineForVertical方法獲取它。 之后,您可以使用方法Layout.getLineEnd / Layout.getLineVisibleEnd獲取行的文本偏移量

例:

int line = mTextLayout.getLineForVertical(canvas.getHeight()); // position of last visible line
int chars = mTextLayout.getLineEnd(line);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM