Bonjour,
Je suis actuellement en train de développer une application android permettant de tracer des lignes sur un plan quadriller. Seulement après avoir tracer ces lignes j'effectue une sauvegarde de mon plan, après rechargement de celui ci, des fois le message suivant apparaît :
on m'indique donc des erreurs à chaque fois au niveau des bitmaps, par exemple pour Plan.onDraw
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 05-13 15:29:53.831: E/AndroidRuntime(5074): FATAL EXCEPTION: main 05-13 15:29:53.831: E/AndroidRuntime(5074): java.lang.OutOfMemoryError 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.graphics.Bitmap.nativeCreate(Native Method) 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.graphics.Bitmap.createBitmap(Bitmap.java:640) 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.graphics.Bitmap.createBitmap(Bitmap.java:620) 05-13 15:29:53.831: E/AndroidRuntime(5074): at com.example.ligne.indoor.Source.drawSource(Source.java:158) 05-13 15:29:53.831: E/AndroidRuntime(5074): at com.example.ligne.indoor.PlanSimulation.draw(PlanSimulation.java:103) 05-13 15:29:53.831: E/AndroidRuntime(5074): at com.example.ligne.indoor.Floor.draw(Floor.java:128) 05-13 15:29:53.831: E/AndroidRuntime(5074): at com.example.ligne.indoor.Plan.onDraw(Plan.java:364) 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.view.View.draw(View.java:13776) 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.view.View.getDisplayList(View.java:12727) 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.view.View.getDisplayList(View.java:12771) 05-13 15:29:53.831: E/AndroidRuntime(5074): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3205)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 protected void onDraw(Canvas canvas) { canvas.save(); paint.setStyle(Style.FILL_AND_STROKE); Bitmap tmp = drawEchelle(); Bitmap ori = drawOrigin(); if (ori != null) canvas.drawBitmap(ori, 0, 0, paint); if (tmp != null) canvas.drawBitmap(tmp, 0, 0, paint); currentFloor.draw(getWidth(), getHeight()); canvas.drawBitmap(currentFloor.getBitmap(), 0, 0, paint); }
Je ne sais pas comment éviter ce problème, si quelqu'un a des idées ?
Partager