2012-02-10 3 views
2

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

Я установка гифы на ListView так:

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 и сбой.

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

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

ответ

3

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

+0

Я следовал за учебником, и он работал фантастически. Я надеялся на что-то быстрое и легкое. Просмотрев это решение, я решил что-то просто перетащить. Оказывается, это не стоит. Огромное спасибо. –

+0

Больше всего приветствую, удачи. –