将图像附加到TextView

时间:2016-09-26 18:39:56

标签: java android android-layout textview drawable

我现在已经尝试了两天将图像附加到TextView,但它没有用。我已经尝试过Android 6 / API Level 23. ImageSpan,Html.fromHtml和其他方法无法正常工作。那么是否可以在Android 6的TextView中的其他单词之间附加图像(Bitmap)?

  

修改

这是XML:

<TextView
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="match_parent"
            android:text="------"
            android:gravity="bottom|left"
            android:typeface="monospace"
            android:id="@+id/mainTextView1"
            android:textIsSelectable="true"/>

图片范围代码:

SpannableStringBuilder ssb = new SpannableStringBuilder(mOutEditText.getText()); ssb.setSpan(new ImageSpan(bitmapArray.get(0), ImageSpan.ALIGN_BASELINE), cursorPosition, cursorPosition+2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); mOutEditText.setText(ssb, BufferType.SPANNABLE);

4 个答案:

答案 0 :(得分:1)

在xml中添加图片

<TextView
    android:drawableBottom="@drawable/ic_add_circle_black_24dp"
    android:drawableEnd="@drawable/ic_add_circle_black_24dp"
    android:drawableLeft="@drawable/ic_add_circle_black_24dp"
    android:drawablePadding="@drawable/ic_add_circle_black_24dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

编程

textView1.setCompoundDrawables(left,top,right,bottom);

或者只剩下

textView1.setCompoundDrawables(left,null,null,null);

答案 1 :(得分:1)

我现在已经为Api 21,22,23 +找到了解决方案:

private void appendImage(Bitmap bmp)
{
    tv.setTransformationMethod(null);
    SpannableString ss = new SpannableString("  ");
    ss.setSpan(new ImageSpan(bmp, ImageSpan.ALIGN_BASELINE), 0, 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    tv.append(ss);
}

在XML中:

android:textAllCaps="false"

错误是在api level 21+中你必须将TransformationMethod设置为null。

答案 2 :(得分:0)

如果要设置TextView的背景,请使用以下方法:

txt.setBackgroundResource(int rsid);
txt.setBakgroundDrawable(Drawable object);

如果通过追加,表示您想将其添加到TextView的末尾,则使用ImageView作为图像。或者您可以在ImageView中叠加TextView

答案 3 :(得分:0)

无法在TextView中的文本之间添加图像。您可以在开头和结尾添加TextView图像。这是通过

完成的
android:drawableLeft