私はこれの問題を抱えています。私は彼らが何らかの種類のインデックスを持っているので、それらの写真を追加したいが、私は配列に追加しようとしました、そして今、hashmap。今度は同じエラーが発生します。写真のおかげでアンドロイドスタジオ
これらのイメージをすべてのメモリを使用しないインデックスに追加する方法を教えてください。私はクイズゲームを作ろうとしており、正しい答えを0-21という数字で索引付けしています。
私はこれの問題を抱えています。私は彼らが何らかの種類のインデックスを持っているので、それらの写真を追加したいが、私は配列に追加しようとしました、そして今、hashmap。今度は同じエラーが発生します。写真のおかげでアンドロイドスタジオ
これらのイメージをすべてのメモリを使用しないインデックスに追加する方法を教えてください。私はクイズゲームを作ろうとしており、正しい答えを0-21という数字で索引付けしています。
すべてのDrawableをビットマップとしてデコードされているため、エラーが発生します。 (R.drawable.someimagename
など)にint
というIDを格納し、必要なときに実際のDrawable
オブジェクトを取得することを検討してください。あなたは0から21のインデックスを持つエントリの一定の数を持っているので
、あなたは、配列を使用することができます:あなたは本当にインデックスで画像を描画する必要がある場合
int[] groundForceDrawables = new int[22];
groundForceDrawables[0] = R.drawable.sotamies_kauluslaatta;
groundForceDrawables[1] = R.drawable.korpraali_kauluslaatta;
// and so on
をI:
Drawable myCurrentDrawable = getResources().getDrawable(groundForceDrawables[i]);
これは、すべてのドロアブルを同時に表示する必要がない場合にのみ適しています。 Drawableオブジェクトを同時に表示する必要があるので、Drawableオブジェクトを同時にキャッシュに入れなければならない場合は、解像度を不必要に高くしない限り、ビットマップを保存するのに十分な大きさのヒープを使用します。
まだことを行っていない場合にも、あなたのヒープサイズを増やすことができます:How to increase heap size of an android application?
は、それらの画像を圧縮してください。透明度が重要でない場合は、それらをjpegsにしてください – peter
小さい画像を使用するだけですか?すべてのイメージを同時にメモリにロードする必要がありますか?あなたはtveプログラムでlatefをロードしてからtvemをアンロードすることができます – user3532232