J'ai une application cartographique. Quelque part dans mon code, je rends les données de la base de données dans le canevas. J'ai rencontré une exception "out of memory" et je n'arrive pas à comprendre comment l'éviter.
Voici la méthode correspondante. J'obtiens une exception lors de la création d'une image avec bitmapfactory.
private static void _renderImage(Canvas g, Point[] points, RImageData imageData,
RMapView mapView) {
Bitmap image = (Bitmap)imageData.image;
Paint paint = new Paint();
if(image == null) {
image = BitmapFactory.decodeByteArray(imageData.getImageBytes(), 0,
imageData.getImageBytes().length);
imageData.image = image;
}
g.drawBitmap(image, points[0].x, points[0].y, paint);
}
J'ai essayé de recycler l'image, mais le canevas confirme qu'il ne peut pas fonctionner avec des bitmaps recyclés.
Toute solution serait très appréciée.