2016-12-09 5 views
0

私はこれの問題を抱えています。私は彼らが何らかの種類のインデックスを持っているので、それらの写真を追加したいが、私は配列に追加しようとしました、そして今、hashmap。今度は同じエラーが発生します。写真のおかげでアンドロイドスタジオ

これらのイメージをすべてのメモリを使用しないインデックスに追加する方法を教えてください。私はクイズゲームを作ろうとしており、正しい答えを0-21という数字で索引付けしています。

Error picture

+0

は、それらの画像を圧縮してください。透明度が重要でない場合は、それらをjpegsにしてください – peter

+0

小さい画像を使用するだけですか?すべてのイメージを同時にメモリにロードする必要がありますか?あなたはtveプログラムでlatefをロードしてからtvemをアンロードすることができます – user3532232

答えて

1

すべての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?

+0

こんにちは、もっと手伝ってもらえますか?私はCollectionにintをどのように格納するのかよく分かりませんでしたか? – chazefate

+1

更新しました –

+0

ありがとうございました!!!!私はこれのために10時間以上を使いました。 Uは救い主です! – chazefate

関連する問題