現在取り組んでいるアプリケーション用に、複数の画像用のようなものを作成しました(ページングが有効になってImageSwitcher
いる iPhone を想像してください)。UIScrollView
最初は、いくつかをハードコーディングImageViews
し、作成/インフレ時に描画可能なリソースをロードしましたが、いくつかの微調整 (および私が改善したと考えたもの) の後、必要なビューを 3 つに減らしました。そのうちの 2 つがImageViews
現在のページの表示に使用され、現在のページと新しいページの間のアニメーション。
この変更により、ページをスライドする前に 2 で新しい画像を動的にロードするためにsetImageResource
/を使用し始めました(HVGA ディスプレイ用のサイズの PNG ファイルを使用しています)。setImageDrawable
ImageViews
がっかりしたことに、パフォーマンスが悪化し、ページを速くスライドするときにラグを感じる程度になりました。ざっと見てみるとTraceView
、アプリを使用している間の合計時間の 17.4% が、次の重いメソッドの 5 倍以上であることがわかりました。これBitmapFactory.nativeDecodeAsset
は、ドローアブル リソースの動的設定によって呼び出されます。
私はこれを回避する方法を考えており、可能な限り最善の方法でそれを行いたいので、どんな提案も歓迎します.