我正在尝试使用Html.fromHtml()在TextView中添加一些文本和图像,但是它不起作用。

从资源获取字符串并调用Html.fromHtml():

String insertedText = "<img src=\"small_image\"/>";

String strText = getResources().getString(R.string.big_string, insertedText);

myTextView.setText(Html.fromHtml(strText, context, null));


上下文是一项同时实现ImageGetter的活动。这是getDrawable函数:

public Drawable getDrawable(String source) {
    int id = 0;
    Drawable drawable = null;
    if(source.equals("small_image")){
        id = R.drawable.small_image;
    }
    if (id > 0) {
        drawable = getResources().getDrawable(id);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
    }
    return drawable;
}


在values.strings.xml文件中,我具有:

<string name="big_string">"Big String %1$s"</string>


我在drawable文件夹中有small_image.png,在调试时,我看到id得到了正确的值,然后位图被加载到drawable变量中,但是它仍然渲染带有'obj'的矩形。

知道为什么这样做吗?

我还尝试使用SpannableStringBuilder并添加了一个图像范围,该范围将替换文本中的“空格”,但这也不起作用。

最佳答案

我发现我的代码有问题。我在问题中写的所有内容都是正确的,您可以将其用作在TextViews中合并图像的参考。

问题是我正在使用属性:

android:textAllCaps="true"


在xml文件中,以某种方式阻止了图像的显示。

关于java - Android html.fromHtml无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22380204/

10-08 21:48