2012-04-10 4 views
0

Я хотел бы знать, что является лучшим способом разместить несколько, маленьких (все одинаковых) изображений в один TextView? Из того, что я нашел, лучшим способом было бы использовать Html, но как? Все мои изображения являются автономными, поэтому я могу их скопировать, например, в необработанную папку, если это правильный путь. Может ли кто-нибудь указать мне в правильном направлении или показать подобную нить, которую я не нашел? ИЛИ, есть ли лучший подход, например, не использовать TextView, а что-то еще, которое может быть разрешено в файлах макета и динамически заполнено изображениями?Несколько изображений в одном TextView?

Btw, все, что я хочу сделать, это:

  • У меня есть ListView, заполненный предметами
  • каждый элемент имеет различные атрибуты, которые я в настоящее время печатают в незашифрованном виде (я хочу, чтобы заменить theese с изображениями
  • атм, я использую один отдельный TextView для отображения theese атрибутов
  • количество атрибутов являются случайными, но, по крайней мере, 1, и, как правило, 3-4 (так 1 изображения, по меньшей мере, 3-4 обычно)

веселит

ответ

1

Почему бы не просто создать макет, который может использоваться для каждой строки вашего ListView и заполнить различные элементы этого макета на основе данных строки?

Например, если каждый элемент имеет максимум 4 атрибутов, добавить четыре ImageViews в макет, и установить их вводимый коэффициент и видимость в getView на основании положения принятого в

+0

этот звук звучит достаточно хорошо, я буду изучать его! – hundeva

+0

Я сделаю следующее: Определите LinearLayout с горизонтальным выравниванием и центрированной гравитацией в xml. Признайте это в коде и динамически добавьте ImageView к определенному LinearLayout, а не точно, что вы сказали, но достаточно близко :) – hundeva

+0

Вам нужно быть осторожным, строя взгляды, возвращаемые вашим адаптером динамически, из-за View recycling.Фактически, вы, вероятно, сохраняете CPU, имея один стандартный вид и вызывающий 'setVisibility', вместо добавления и удаления представлений из макета строки каждый раз, когда вызывается' getView'. –

1

Одно точно:. Вы не хотите помещать ваши изображения в текст.

Текстовое изображение может содержать фон, но не должно использоваться для хранения изображений.

Что вы хотите сделать, это просто создать макет элемента, который будет использоваться вашим адаптером для заполнения списка.

Этот макет элемента будет содержать textView, который содержит только текст и изображения. Затем в вашем спискеAdapter вы просто покажете или спрячете нужные вам изображения.

Try основывать свое расположение на RelativeLayout, что позволит вам иметь более простую конструкцию и даже перекрывать некоторые элементы (изображения могут перекрываться в TextView, например)

3

Звуки, как вы делаете смайлики в чате/приложение для сообщений, я прав? ;)

В любом случае, можно использовать ImageSpan. Вы можете использовать Matcher, чтобы найти все комбинации текста, которые вы хотите заменить, и используйте SpannableStringBuilder, чтобы добавить ImageSpan s в позиции, возвращаемые соглашением, это заменит эти символы изображением, заданным ImageSpan.

+0

nah, я улучшаю свое приложение расписания поездов, где каждый поезд имеет разные атрибуты, например, он имеет велосипедный транспорт или нет, только 2-й класс или 1-й класс, и т. Д.). Ответ, который вы упомянули, звучит достаточно хорошо, я попробую это а также :) – hundeva

Смежные вопросы