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

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

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

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

18.05.2015, 12:03. Просмотров 768. Ответов 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); то происходит искажение.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2015, 12:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вставить несколько изображений в textView (Программирование Android):

Как вставить иконку в TextView? - Программирование Android
Здравствуйте!Как в TextView вместо слова "City" вставить маленькую иконку?Типа картинка и рядом название города. // Get the city ...

Как по нажатию кнопки несколько раз выводить текст в TextView в Android Studio? - Программирование Android
Помогите вывести текст в textview при нажатии на одну и ту же кнопку ? Нажал - изменился текст, опять нажал и тд

Загрузка изображений в TextView из HTML - Программирование Android
Здравствуйте ) Достаточно частый вопрос. Но все усложняется тем, что это все находится в TextView. Имеется код: arrayList...

Не получается вставить текст в TextView - Программирование Android
Создаю список из БД, при этом пытаюсь найти TextView в другом Layout (item.xml), чтобы вставить в него текст. Почему при запуске...

Несколько строк в textview - Программирование Android
Казалось бы нет никаких сложностей. Но вот с чем столкнулся и никак не могу понять из-за чего такой эффект. Пытаюсь вывести в поле...

Вывод в GridView в одной ячейке несколько TextView - Программирование Android
Т.е. например в гриде 10 ячеек и нужно чтобы в каждой было по 3 TextView. Как это можно реализовать? )

4
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
18.05.2015, 13:15 #2
mikl35, можете попробовать использовать WebView. Я пробовал как-то через TextView, там одни проблемы.
0
Mikalai
256 / 232 / 94
Регистрация: 11.01.2015
Сообщений: 656
18.05.2015, 13:20 #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, прикрепляет объект или сдвигает уже прикреплённый.
0
mikl35
4 / 4 / 0
Регистрация: 30.05.2014
Сообщений: 129
18.05.2015, 13:37  [ТС] #4
Все работает если создать два ImageSpan, но мне нужно вставлять в текст смайлики и не известно сколько их будет.

Добавлено через 1 минуту
Может попробовать создать массив динамический ImageSpan и в него вкладывать смайлики а потом уже прикреплять к тексту через цикл.
0
Mikalai
256 / 232 / 94
Регистрация: 11.01.2015
Сообщений: 656
18.05.2015, 13:48 #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);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2015, 13:48
Привет! Вот еще темы с ответами:

Текст из TextView перенести в другой TextView по нажатию Button - Программирование Android
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел сделать банальную вещь - текст из TextView перенести в...

Несколько изображений, вывод случайным образом - Программирование Android
В приложении есть 10 изображений a1.jpg a2.jpg a3.jpg ... есть функция рандом, от 0 до 9. arr = (int)(Math.random() * 9); ...

TextView txt = new TextView(this); - ошибка - Программирование Android
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте создается таким же образом все нормально TextView txt =...

Как использовать TextView? - Программирование Android
Здрасте. Прошу прощение за нубский вопрос, как использовать TextViev? То есть, к примеру в main.xml есть TextViev ...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
18.05.2015, 13:48
Ответ Создать тему
Опции темы

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