spannableText にスパンを設定し、TextView に設定します。このテキストの幅と高さを取得した後。ただし、結果は、設定されたスパンによるテキストのサイズの変化を考慮していません。次の解決策は、作業が正しくありません。
return textView.getPaint().measureText(text, 0, text.length());
テキストを使用してStaticLayout (またはAPI > 23 の場合はStaticLayout.Builder )を作成し、テキストの幅と高さを取得する必要があります。システムがテキストを改行することに関心がない場合は、幅パラメーターに Integer.MAX_VALUE を指定する必要があります。
StaticLayout を作成したら、探している情報に対して getWidth()、getHeight()、getLineWidth() などの関数を使用できます。