Android Webview GIF значительно увеличивается со временем - PullRequest
2 голосов
/ 10 февраля 2012

В двух словах, я пытаюсь отобразить анимированный GIF в веб-просмотре.Это веб-представление в элементе списка.Итак, существует список различных файлов GIF.

Я устанавливаю GIF-файлы для списка таким образом:

View v = convertView;
if (v == null || position == 1) {
    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v = vi.inflate(R.layout.routine_exercise_item, parent, false);
}
TextView t = (TextView)v.findViewById(R.id.routine_exercise_num);
t.setText(getResources().getString(R.string.other_exercise) + " " + (position));

t = (TextView)v.findViewById(R.id.routine_exercise_description);
t.setText(mitems.get(position).description);



WebView anim = (WebView)v.findViewById(R.id.routine_exercise_gif);
anim.loadUrl("file:///android_asset/" + mitems.get(position).imagePath);
anim.setBackgroundColor(0);

Я делаю это внутри getView подкласса ArrayAdapter <>.

Все загружается просто отлично и gif работает ... Однако, как только он отображается, моя куча растет как сумасшедшая.Требуется всего 30-45 секунд, чтобы куча достигла 32 МБ на моем EVO 3d и вылетела.

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

Любые советы?

1 Ответ

3 голосов
/ 10 февраля 2012

Уф.A WebView за ListView предмет?Да, они тяжелые.Я не обязательно вижу что-то, что могло бы вызвать поведение, которое вы видите, но использование WebView только для того, чтобы показать GIF, немного излишне.Взгляните на этот урок на подклассе View, который использует android.graphics.movie для отображения анимированных GIF-файлов.Может быть легче, чем WebViews.

...