0

メモリの少ないデバイスでビットマップを含む非常に長いリスト ビューを処理する最善の方法は何ですか? 少しスクロールするとクラッシュします... 画質を落としたくありません... 利用可能なメモリで可能な数のアイテムだけをロードすることを考えていましたが、これは明らかに悪い解決策です. 位置に応じて、getView() でビットマップを手動でリサイクルする必要がありますか? これはこれを処理する方法ですか?

API 7 をターゲットにしています。

前もって感謝します。

PS ビットマップは、HTTP を使用してリモート サーバーからロードされます。

4

2 に答える 2

0

Bitmapから を直接ロードしSD Cardます。memory何らかの形で保管しないでくださいbitmap cache

于 2012-07-15T10:06:10.083 に答える
0

メソッドでビューをリサイクルしましたgetView()か? そうでない場合は、次のことを行います。

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

    if(mInflater == null){
    mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    View viewItem = convertView;
    if(viewItem == null)
        viewItem = mInflater.inflate("YOUR_LAYOUT", null);


//Continue with your code but use viewItem as the view of the list view line, that way you don't always create new instance of it. This is what helped me in the same problem.

編集:次の投稿を確認してください。役立つ場合があります。

ListView で画像の遅延読み込みを行うにはどうすればよいですか

パフォーマンスのためのマルチスレッド

于 2012-07-15T10:36:51.157 に答える