現在、大量のビットマップを処理しているときに、いくつかのパフォーマンスの問題 (メモリ不足) に直面しています。これは修正可能な問題にすぎないため、次の方法を使用する際の違いを誰かが説明してくれるかどうか疑問に思っています。
画像を ImageView にロードするだけの場合は、通常次を使用します。
imageView.setImageDrawable(getResources.getDrawable(R.drawable.id));
事前にドローアブルをサンプリングしたい場合は、通常使用します(ここではサンプリングなし):
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.id);
imageView.setImageBitmap(bm);
私の質問は、パフォーマンスの最適化に関連しています。さまざまなドローアブル フォルダーを使用してできるだけ多くのドローアブルを提供する方がよいか (したがって、これらのドローアブルはさまざまなデバイスに必要な解像度にほぼ適合する)、高品質のドローアブルをサンプリングする方がよいかどうか疑問に思っています。setImageDrawable は内部で何をしていますか? サンプリングせずに、BitmapFactory を使用してリソースをデコードしますか? アプリの実際のサイズと、実行時の CPU およびメモリ負荷との間にはトレードオフがあるようです。