2012-02-10 17 views
2

一言で言えば、アニメーションGIFをWebビューで表示しようとしています。このwebviewはリストアイテムです。したがって、さまざまなGIFのリストビューがあります。Android Webview時間の経過とともに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); 

私はArrayAdapter <>サブクラスのgetViewメソッド内でこれをやっています。

すべてがうまくロードされ、gifが動作します...しかし、表示されるとすぐに、私のヒープは狂ったように成長します。ヒープが私のEVO 3dで32MBを打ち、クラッシュするのは30〜45秒しかかかりません。

私はこのようなメモリリークが起こるのが間違っているのか分かりません。

ヒント?

答えて

3

Oof。 A WebViewListView件につき?ええ、彼らは重いです。私はあなたが見ている振る舞いの原因となるものは必ずしも見当たらないが、GIFを表示するためにちょうど012過ぎることを利用するとWebViewを利用する。アニメーションGIFを表示するのにandroid.graphics.movieを使用するViewサブクラスのthis tutorialを見てください。 WebViewよりも軽いかもしれません。

+0

私はチュートリアルに続き、それは驚異的に機能しました。私は何かをすばやく簡単に望んでいました。この解決策を見て、私は何かを決めました。それはちょうどドラッグアンドドロップです。 それは価値がないことが分かります。本当にありがとう。 –

+0

大歓迎、幸運。 –

関連する問題