Как изменить размер TextView после загрузки изображений с помощью asynctask

Я использую метод, указанный в Android HTML ImageGetter as AsyncTask для загрузки изображений в Textview из источника html. Это отлично работает и не замораживает пользовательский интерфейс при загрузке изображений. Проблема, с которой я столкнулся, заключается в том, что, когда он получает изображения, он рисует их в TextView, TextView не изменяет размер, поэтому изображения появляются поверх текста, который уже существует, фактически обрезаются до текущего размера TextView ( установлен с wrap-content), если изображений много.

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

TextView находится в ListView, который обрабатывается настраиваемым адаптером, если это имеет значение.

О, и причина, по которой я не использую просто WebView, заключается в том, что в качестве его в настраиваемой строке ListView может быть до 20 строк, и у меня возникли странные проблемы с одновременной обработкой такого количества WebView.

Спасибо


person Kevin Appleyard    schedule 12.12.2011    source источник
comment
Почему вы не используете imageView вместо TextView?   -  person coder_For_Life22    schedule 13.12.2011
comment
Я не использую ImageView, потому что html также содержит кучу текста, который мне нужно отобразить. Текст является основной частью, но с дополнительными изображениями.   -  person Kevin Appleyard    schedule 13.12.2011
comment
Су ... Почему вы не анализируете текст, а затем загружаете изображения в просмотр изображений? Это может облегчить вам жизнь.   -  person coder_For_Life22    schedule 13.12.2011
comment
Хорошо, я думаю, что вы правы, я думаю, это означает, что мне нужно: 1) разбирать ссылки на изображения (я полагаю, jsoup). 2) программно добавить от 0 до многих ImageView в мою настраиваемую строку адаптера для ListView. 3) реализовать асинхронный загрузчик для различных ImageView. А TextView так близок к работе вздох :)   -  person Kevin Appleyard    schedule 13.12.2011


Ответы (2)


Попробуйте это, должно сработать.

Например:

(TextView).setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAPֹ_CONTENT, LayoutParams.WRAP_CONTENT));
person Jong    schedule 12.12.2011
comment
Танки для предложения, код в ссылке, которую я опубликовал, вызывает Invalidate в контейнере (переданный как параметр), который, похоже, не работает, я тоже пробовал это, и все равно не повезло. (Изменил тип макета на Relative, поскольку это то, в чем содержится TextView). - person Kevin Appleyard; 13.12.2011
comment
Бинго, думаю, я понял. Вместо того, чтобы передавать объект TextView классу URLImageParser как View, передайте его конкретно как TextView. Затем это позволяет мне вызвать URLImageParser.this.container.setEllipsize(null);, что, похоже, выполняет свою работу. Публикуйте это как комментарий, так как это пока не позволяет мне публиковать ответ на мой собственный вопрос. Позже обновлю вопрос этим ответом. - person Kevin Appleyard; 13.12.2011
comment
Это кажется хорошим подходом. Я думаю, что то, как я разместил в комментарии, является менее проблемным подходом и более подробным. - person coder_For_Life22; 13.12.2011

Бинго, думаю, я понял.

Вместо того, чтобы передавать объект TextView классу URLImageParser как View, передайте его конкретно как TextView. Затем это позволяет мне вызвать URLImageParser.this.container.setEllipsize(null);, что, похоже, выполняет свою работу.

person Kevin Appleyard    schedule 13.12.2011
comment
Решение URLImageParser.this.container.setEllipsize(null); отлично работает для Android 2.x, но не для Android 4.x !!! У кого-то есть идея? - person ; 17.03.2012