Android html.fromHtml не работает

0

Я пытаюсь добавить текст и изображение в TextView, используя Html.fromHtml(), но он не работает.

Получение строки из ресурсов и вызов 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;
}

В файле strings.xml в значениях у меня есть:

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

У меня есть small_image.png в выпадающей папке, и во время отладки я вижу, что этот идентификатор получает правильное значение, а затем битмап загружается в возвращаемую переменную, но он по-прежнему отображает прямоугольник с "obj", написанным на нем.

Любая идея, почему это так?

Я также попытался использовать SpannableStringBuilder и добавить интервал изображения, который заменил бы "пробел" из моего текста, но это тоже не сработало.

  • 0
    Вы не можете показать изображение в TextView .
  • 0
    Согласно этому и этому вы можете. Я использовал это в других приложениях, и он работал отлично!
Показать ещё 1 комментарий
Теги:
textview

5 ответов

3
Лучший ответ

Я нашел проблему с моим кодом. Все, что я написал в вопросе, является правильным, и вы можете использовать его в качестве ссылки для включения изображений в TextViews.

Проблема заключалась в том, что я использовал атрибут:

android:textAllCaps="true"

В xml файле и что-то помешало показу изображения.

0
  String name = modelDispatchReportList.get(position).getName();   //get name from model class typed List
    String text = "<font color='#000000'>" + name + "</font>";  //change color of name

    /*  check version of API to call method of Html class because fromHtml method is deprecated
    * */
    if (android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.N) {
        Log.d(TAG, "onBindViewHolder: if");
        holder.textViewName.setText("12345" + " ");    //set text to textView
        holder.textViewName.append(Html.fromHtml(text));    //append text to textView
    } else {
        Log.d(TAG, "onBindViewHolder: else");
        holder.textViewName.setText("12345" + " ");    //set text to textView
        holder.textViewName.append(Html.fromHtml(text, 0)); ////append text to textView
    }
0

Просто измените Textview на WebView и настройте контент в WebView

0

ну, я пробовал ваш код, он работает...

Кстати, я использовал deafult ic_lancher drawable...

Я просто устанавливаю textview в setContentView.

Я думаю, это макет текста или проблема с возможностью рисования?

не могли бы вы рассказать мне больше?

  • 0
    Я действительно не знаю, что еще сказать, конечно, у меня есть файл макета большего размера, но я не могу поделиться им ... он работал для меня в других случаях, но я не вижу, что может повлиять на это. Если вы можете придумать что-то конкретное, я буду рад ответить.
  • 0
    ну, убедитесь, что getDrawable() а drawable не нулевой, я не понимаю, почему ...
Показать ещё 3 комментария
-1

Вы не можете установить изображение на textview по html.

  • 0
    тогда почему существует ImageGetter ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню