1

大きな画像を使用してさまざまなフラグメント アクティビティを使用するアプリケーションを開発しています。アクティビティ全体でこの画像をメモリに保持したくないので、setImageBitmap(null) で画像のバインドを解除します。そして、onResume() で復元イメージを復元します。しかし、アプリに完全な参照がある場合、xml に設定された画像で同じことをしなければならないのはなぜですか? アクティビティを離れるときにフラグメント内のすべての画像を強制的にヒープに保持せず、他のアクティビティから戻るときにビューを強制的に再作成する最良の方法は何ですか? 「setoffscreenPageLimit(1)」を設定すると、3 つのフラグメントの画像が常にヒープに残るのはなぜですか? 3は最小ですか?私はfragmentStatePagerAdapterを使用しています。

ありがとう!

4

2 に答える 2

1

「setoffscreenPageLimit(1)」を使用すると、ViewPager に次の Fragment もメモリにロードするように指示されます。つまり、現在の Fragment の左右の Fragment をロードします。

また、「setoffscreenPageLimit(0)」を設定しようとしないでください。機能しません。

-編集-

また、xml で設定する代わりに、このようにプログラムで画像を設定することもできます。

ImageView imageView = (ImageView)findViewById(R.id.imageview);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
imageView.setImageBitmap(bitmap);
于 2013-08-27T08:12:52.370 に答える