0
 animView.post(new Runnable() {
      @Override
      public void run() {
           new StaticLayout(
                animView.getText(),
                animView.getPaint(),
                animView.getMeasuredWidth(),
                Layout.Alignment.ALIGN_NORMAL,
                animView.getLineSpacingMultiplier()
                ,animView.getLineSpacingExtra(),
                true);
}

然后我调用这个StaticLayout的getHeight()。但它的结果不等于animView.getHeight()。我不知道为什么?

4

1 回答 1

0

使用 TextView 内部的 staticLayout 调用参数来使用 StaticLayout 可以获得正确的高度和宽度。

StaticLayout.Builder builder = StaticLayout.Builder.obtain(mTransformed,
                0, mTransformed.length(), mTextPaint, wantWidth)
                .setAlignment(alignment)
                .setTextDirection(mTextDir)
                .setLineSpacing(mSpacingAdd, mSpacingMult)
                .setIncludePad(mIncludePad)
                .setUseLineSpacingFromFallbacks(mUseFallbackLineSpacing)
                .setBreakStrategy(mBreakStrategy)
                .setHyphenationFrequency(mHyphenationFrequency)
                .setJustificationMode(mJustificationMode)
                .setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE);

所有参数都可以从您自己的 TextView 中获取。

于 2020-01-13T03:35:14.407 回答