さまざまなトピックやものに関する多くの情報を提供するアプリを作成しました。私のアプリにはたくさんの画像があり、すべて 200 ~ 290KB (jpg) です。Imagebuttons (約 41 個の ImageButtons) を備えたスライド ドロワーがあります。これらの ImageButton を使用してカテゴリを選択する場合 (たとえば、メイン メニューから情報アクティビティに移動する場合)、ロードに約 2 秒かかります。ただし、画像ボタンを選択すると、ほぼ瞬時に画像が表示されます。メイン メニューから情報アクティビティへのロード プロセスを高速化する方法はありますか?
3 に答える
約41個のImageButtons
41個の画像ボタンが本当に必要ですか? よりスマートなものにすることはできませんか(背景と同じドローアブルを持つ通常のボタンのように、画像ボタンのように見え、41個の画像を開いてデコードして使用する必要はありませんか?また、JPEGの代わりにPNGを使用すると、これが改善される可能性があります。一般的に、UI を再考する
画像を非同期でロードする必要があります。インターフェイスはすぐにロードされますが、画像処理タスクは並行して行われ、画像が徐々に表示されます。
基本的に、使用する必要がありますAsyncTask
。開発者ポータルには、ダウンロード可能で使用可能なコード サンプルを含む優れたチュートリアルが用意されています。
http://developer.android.com/training/displaying-bitmaps/index.html
1 つの質問: スライド ドロワーの用途は何ですか? 一度に表示されるボタンの数は? 一度にいくつかを表示し、「右から左」のスワイプで他のすべてをスライドする場合は、ViewPager
(API レベル 13 で導入され、上記のすべての API レベルのサポート ライブラリから利用できると思います) を使用する必要があります。 4)。
機能: 表示されている ImageButtons をロードするだけなので (aListView
が行うように)、41 個の ImageButtons を含む 1 つのレイアウトは必要ありません。Fragment
さまざまな画像ボタンを動的に取得する を設計するだけです。詳細については、ドキュメントを確認してください:リンク