私は約20-30のリソースイメージを持つAndroidアプリケーションを作ろうとしています。これらの画像は、キャンバス上に連続したアニメーションを表示するために使用されるので、最高のパフォーマンスを得るためには、これらの画像を保存するためにどのコンテナを使用すべきですか?ビットマップにはどのようなコンテナを使用しますか?
答えて
これらの画像がres/drawableディレクトリになければならないことは既に理解されているようです(そうでなければ、どこに行くのか)。
あなたが実際にそれらの文字列をループし、このようにそれらをロードできるなど、「画像2」、あなたは「image0」、「画像1」のようなあなたのイメージの何かに名前を付けると仮定すると:これはそれにあなたのイメージをロードします
int myImgLen = 10;//or however many images you have, you can also do this dynamically looking for when getIdentifier returns 0, which means it didn't find anything at that name
ArrayList<Bitmap> myList = new ArrayList<Bitmap>;
for(int i = 0; i < myImgLen; i++)
myList.add(BitmapFactory.decodeResource(this.getResources(),
this.getResources().getIdentifier("image" + i, "drawable", getPackageName()))
);
配列リスト。
次に、簡単にmyCanvas.drawBitmap(myList.get(i));
をキャンバスに1つずつ描画できます。
しかし、これは非常に重要であり、これはメモリ消費量が非常に高価であることに注意してください。画像がきれいに圧縮されたJPGであるかどうかは関係ありません。ビットマップにロードすると、イメージをロードするために使用している設定ごとに、各ピクセルが必要なだけのスペースを占めて爆発します。だから、あなたがアニメーションとしてそれらを実行するためにいくつかの小さな画像でこれをやっているなら、それはうまくいくだろうが、あなたが間違いなく(壁紙のような)デバイスの大きさであるものを持っていることを望んでいるなら、 OutOfMemory Exception。あなたが行くときにビットマップをロードして解放しないでください(それらにrecycle()
を呼び出します)。
アニメーションの際にrecycle()を呼び出すと、画像の読み込み中にアニメーションが一時停止することが多く見られます。
答えをいただきありがとうございます。 – sth4
あなたは大歓迎です! :) –
- 1. .NET 2.0ではどのようなDependencyInjectionコンテナを使用できますか?
- 2. コンテナにはどのようなタイプがありますか?
- 3. コンテナに必要なもの(DIALコンテナ)はDIコンテナでどのように認識されていますか?
- 4. DIコンテナは工場にどのようなメリットをもたらしますか?
- 5. PS/PDFはどのようにビットマップを保存し、圧縮しますか?
- 6. コンテナ "gcr.io/google_containers/pause:0.8.0"のプロセスはどのような作業をしますか?
- 7. v8クランクシャフトはどのようなプロファイラを使用しますか?
- 8. ドッカーはコンテナの新しいファイルをどのように管理しますか?
- 9. IoCコンテナなしでコントローラをどのようにユニットテストできますか?
- 10. Castle Windsorコンテナはどのように入手できますか?
- 11. ビットマップはRGBA生ビットフィールドをどのように保存しますか?
- 12. .NET CF 2.0を使用してビットマップのPixelFormatを取得するにはどうすればよいですか?
- 13. マトリックスを使用してビットマップをキャンバス上に配置するにはどうすればよいですか?
- 14. インタラクティブなWebマップにはどのようなテクノロジーを使用しますか?
- 15. .NETビットマップでGDI +ぼかし効果を使用するにはどうすればよいですか?
- 16. jqueryを使用するコンテナのサイズ変更イベントをどのように購読しますか?
- 17. VC++では、STLコンテナにconst型を使用できます。どうして?
- 18. (どのように)TPLは(CLR)スレッドプールを使用しますか?
- 19. Pythonではどのようにline.rstrip()を使用しますか?
- 20. Javaオブジェクトはどのようにメモリを使用しますか?
- 21. アプリはどのようにsqliteを使用しますか?
- 22. HibernateはJDBCをどのように使用しますか?
- 23. Android - ビットマップを使用してメモリオーバーロードを回避するにはどうすればよいですか?
- 24. BITMAPV5HEADERヘッダーを使用してビットマップを作成するにはどうすればよいですか?
- 25. どのようなタイプのデータベースを使用しますか?
- 26. コンテナグループとコンテナをどのようにリンクできますか?
- 27. お金の表記にはどのようなクラスを使用しますか?
- 28. サービスの定義にはどのようなSchema.orgタイプを使用しますか?
- 29. 私のサイトにはどのようなスキーマコードを使用しますか?
- 30. レンタル空きのウェブサイトにはどのようなアイテムタイプを使用しますか?
あなたは実際のアニメーション(それが動いているように見える)を作ろうとしているのですか、何らかのアニメーションスライドショーについて話していますか? –