如何在Android的TextView中显示图像?

ind*_*ira 60 android

我想在TextView中插入一些图像.怎么做?任何的想法

Bud*_*ril 73

您可以创建spannableString并将图像放在TextView中所需的位置.或者你可以使用

ImageSpan is = new ImageSpan(context, resId);
text.setSpan(is, index, index + strLength, 0);
Run Code Online (Sandbox Code Playgroud)

  • @LeiLeyba正确.真正的答案是:final Spannable text = new SpannableString(string +""); text.setSpan(is,string.length(),1 + string.length(),0); .这会将图像添加到给定字符串的末尾. (5认同)

Daw*_*ozd 56

您可以更轻松地使用API 1中的SpannableStringBuilder

用法示例:

对于API> = 21

    SpannableStringBuilder builder = new SpannableStringBuilder();
    builder.append("My string. I ")
            .append(" ", new ImageSpan(getActivity(), R.drawable.ic_action_heart), 0)
            .append(" Cree by Dexode");

    textView.setText(builder);
Run Code Online (Sandbox Code Playgroud)

对于API> = 1

    SpannableStringBuilder builder = new SpannableStringBuilder();
    builder.append("My string. I ").append(" ");
    builder.setSpan(new ImageSpan(getActivity(), R.drawable.ic_action_heart),
            builder.length() - 1, builder.length(), 0);
    builder.append(" Cree by Dexode");

    textView.setText(builder);
Run Code Online (Sandbox Code Playgroud)


amy*_*amy 24

ImageSpan is = new ImageSpan(context, R.drawable.arrow);
SpannableString text = new SpannableString("Lorem ipsum dolor sit amet");
text.setSpan(is, 5, 5 + 10, 0);
Run Code Online (Sandbox Code Playgroud)


Aja*_*ngh 10

做这样的事情.

textView.setCompoundDrawableWithIntrinsicBounds(yourImg, null, null, null);
Run Code Online (Sandbox Code Playgroud)