4

いくつかのオブジェクトを含むテキストがTextViewいっぱいです。ImageSpan画像が通常の行の高さよりも高くなる可能性があり、次の問題が発生します。

  • 画像が行の最後のオブジェクトである場合、次の行の高さは正しいです
  • 最後のオブジェクトが画像でない場合、次の行の高さは画像を含む行の高さに設定されます

正しい状況は次のとおりです。 ここに画像の説明を入力


これは間違った状況です: ここに画像の説明を入力

さらに興味深いのは、テキストに改行文字がある場合、その時点から行の高さが適切であることです。

これTextViewは非常に基本的なものです。

<TextView
    android:id="@+id/text_02"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="18dp"
    android:text="Text 02" />

(TextViewは にあり、LinearLayoutにありScrollViewます。)

これは、スパンされたテキストを作成する方法です。

TextView textView02 = (TextView) findViewById(R.id.text_02);

SpannableString string = new SpannableString(LOREM_IPSUM);
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 102, 103, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 105, 106, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 108, 109, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

textView02.setText(string);

誰かがこれに対する解決策について何か考えを持っていますか? TextViewの線画メソッドを再実装したくありません...

4

1 に答える 1