Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
mikl35
4 / 4 / 0
Регистрация: 30.05.2014
Сообщений: 126
#1

Как вставить несколько изображений в textView - Android

18.05.2015, 12:03. Просмотров 628. Ответов 4
Метки нет (Все метки)

Здравствуйте, скажите как вставить несколько иконок в textView, то есть в нужные позиции в тексте. При вставке одной иконки все нормально, но при вставке нескольких все искажается. Я делаю следующим методом для одной иконки:
Java
1
2
3
4
5
6
7
8
9
10
TextView txtV = (TextView) findViewById(R.id.txt);
        // берем встроенную иконку share для создания объекта ImageSpan
        ImageSpan is = new ImageSpan(this, R.drawable.abc_ic_menu_share_holo_light,
                ImageSpan.ALIGN_BASELINE);
        // создаем из строкового ресурса объект типа SpannableString
        SpannableString text = new SpannableString(getResources().getString(R.string.some_text));
        // заменяем символы в строке с 3-позиции до 4 (т.е. один символ) иконкой, отсчет с 0
        text.setSpan(is, 3, 4, Spannable.SPAN_COMPOSING);
        // добавляем текст в TextView
        txtV.setText(text);
если добавить еще text.setSpan(is, 8, 9, Spannable.SPAN_COMPOSING); то происходит искажение.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2015, 12:03     Как вставить несколько изображений в textView
Посмотрите здесь:

Android Как ставить азац в TextView?
Android Как обновить TextView с AsyncTask?
Android Как вставить иконку в TextView?
Android Как использовать TextView?
Загрузка изображений в TextView из HTML Android
Несколько изображений, вывод случайным образом Android
Как создать ссылку в TextView? Android
Android Несколько строк в textview
Android Вывод в GridView в одной ячейке несколько TextView
Как у TextView задать текст? Android
Как по нажатию кнопки несколько раз выводить текст в TextView в Android Studio? Android
Android Не получается вставить текст в TextView

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
18.05.2015, 13:15     Как вставить несколько изображений в textView #2
mikl35, можете попробовать использовать WebView. Я пробовал как-то через TextView, там одни проблемы.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
18.05.2015, 13:20     Как вставить несколько изображений в textView #3
mikl35, вот так попробовал и всё работает:

Java
1
2
3
4
5
6
7
8
9
10
11
TextView txtV = (TextView) findViewById(R.id.txt);
        // берем встроенную иконку share для создания объекта ImageSpan
        ImageSpan is = new ImageSpan(this, R.drawable.abc_ic_menu_share_holo_light,
                ImageSpan.ALIGN_BASELINE);
        ImageSpan is2 = new ImageSpan(this, R.drawable.abc_ic_menu_share_holo_light,
                ImageSpan.ALIGN_BASELINE);
        SpannableString text = new SpannableString(getResources().getString(R.string.some_text));
        
        text.setSpan(is, 3, 4, Spannable.SPAN_COMPOSING);
        text.setSpan(is2, 8, 9, Spannable.SPAN_COMPOSING);
        txtV.setText(text);
Метод setSpan, как пишут на developer.android.com, прикрепляет объект или сдвигает уже прикреплённый.
mikl35
4 / 4 / 0
Регистрация: 30.05.2014
Сообщений: 126
18.05.2015, 13:37  [ТС]     Как вставить несколько изображений в textView #4
Все работает если создать два ImageSpan, но мне нужно вставлять в текст смайлики и не известно сколько их будет.

Добавлено через 1 минуту
Может попробовать создать массив динамический ImageSpan и в него вкладывать смайлики а потом уже прикреплять к тексту через цикл.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
18.05.2015, 13:48     Как вставить несколько изображений в textView #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Тонкости реализации на ваш вкус. Вот например так можно:

Java
1
2
3
4
5
6
7
8
9
10
11
12
SpannableString text = new SpannableString(getResources().getString(R.string.some_text));
insertSmiles(text , 4, 2);
insertSmiles(text , 23, 2);
...
 
// тра та та
 
void insertSmiles(SpannableString text, int pos, int len) {
        ImageSpan is = new ImageSpan(this, R.drawable.abc_ic_menu_share_holo_light,
                ImageSpan.ALIGN_BASELINE);
        text.setSpan(is, pos, pos+len, Spannable.SPAN_COMPOSING);
}
Yandex
Объявления
18.05.2015, 13:48     Как вставить несколько изображений в textView
Ответ Создать тему
Опции темы

Текущее время: 20:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru