2

現在取り組んでいるアプリケーション用に、複数の画像用のようなものを作成しました(ページングが有効になってImageSwitcherいる iPhone を想像してください)。UIScrollView

最初は、いくつかをハードコーディングImageViewsし、作成/インフレ時に描画可能なリソースをロードしましたが、いくつかの微調整 (および私が改善したと考えたもの) の後、必要なビューを 3 つに減らしました。そのうちの 2 つがImageViews現在のページの表示に使用され、現在のページと新しいページの間のアニメーション。

この変更により、ページをスライドする前に 2 で新しい画像を動的にロードするためにsetImageResource/を使用し始めました(HVGA ディスプレイ用のサイズの PNG ファイルを使用しています)。setImageDrawableImageViews

がっかりしたことに、パフォーマンスが悪化し、ページを速くスライドするときにラグを感じる程度になりました。ざっと見てみるとTraceView、アプリを使用している間の合計時間の 17.4% が、次の重いメソッドの 5 倍以上であることがわかりました。これBitmapFactory.nativeDecodeAssetは、ドローアブル リソースの動的設定によって呼び出されます。

私はこれを回避する方法を考えており、可能な限り最善の方法でそれを行いたいので、どんな提案も歓迎します.

4

1 に答える 1

1

どのフォーマットで画像を持っていますか?

AndroidはRGB565画像でネイティブに動作するため、画像をその形式に変換できれば、デコードははるかに高速になります。

于 2009-08-22T22:34:49.963 に答える