降低ImageSpan的高度和宽度

Din*_*uka 7 android textview android-layout spannablestring imagespan

我将Image Drawable设置为Textn的SpannableString,但图像比文本更大,使它看起来很奇怪.我需要减小imagespan的大小,使其与文本的高度相同:

这是我尝试过的:

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

SpannableStringBuilder builder = new SpannableStringBuilder(holder.temptext.getText());
builder.setSpan(new ImageSpan(drawable), selectionCursor - ":)".length(), selectionCursor, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.temptext.setText(builder);
holder.temptext.setSelection(selectionCursor);

holder.caption.setText(builder);
Run Code Online (Sandbox Code Playgroud)

Nik*_*lai 7

您需要测量您TextView的身高并使用它而不是内在界限:

int lineHeight = holder.temptext.getLineHeight();

drawable.setBounds(0, 0, lineHeight, lineHeight);
Run Code Online (Sandbox Code Playgroud)

  • 您可以像这样计算新宽度“val width = lineHeight * drawable.intrinsicWidth / drawable.intrinsicHeight”。 (2认同)