マップアプリケーションがあります。私のコードのどこかで、データベースからキャンバスにデータをレンダリングしています。 「メモリ不足」の例外が発生しましたが、回避する方法はわかりません。ループ内にビットマップを作成するときにメモリリークが発生する
これは関連する方法です。 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);
}
私はイメージをリサイクルしようとしましたが、キャンバスはリサイクルビットマップで動作しません。
どのような解決策も非常に評価されます。
_renderImage()を頻繁に呼び出していますか? – mcfinnigan
キャンバスに描画されるタイル(イメージの塊)を想像してみてください。 – no9