应用程序崩溃在Google Maps Android API v2中使用画布显示GroundOverlay
问题描述:
我在我的地图上显示GroundOverlay,该地图的图像是使用我绘制了弧线的画布制作的,但我遇到了一些问题:首先,应用程序在一段时间后崩溃了(它给了我一个java.lang.OutOfMemoryError),它没有显示覆盖。我曾尝试在叠加层的图片上放置白色背景,并将其显示出来,所以我猜想问题来自于圆弧,但我无法分辨出我做错了什么。任何人有任何想法?应用程序崩溃在Google Maps Android API v2中使用画布显示GroundOverlay
Projection projection = map.getProjection();
Point point1 = projection.toScreenLocation(latlng1);
Point point2 = projection.toScreenLocation(latlng2);
float startAngle = (float) (Math.atan2(point1.y - point2.y,
point1.x - point2.x));
float sweepAngle = (float) (GenericNdData.getLateralTrajectory(
T_FplnType.ACTIVE.getId()).getSegment(i).getAngle());
float radius = FloatMath.sqrt((float) (Math.pow(
(point1.x - point2.x), 2) + Math.pow(
(point1.y - point2.y), 2)));
RectF rectangle = new RectF(point2.x - radius, point2.y
- radius, point2.x + radius, point2.y + radius);
Paint paint = new Paint();
paint.setARGB(250, 0, 255, 0);
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setFakeBoldText(true);
paint.setStrokeWidth(4f * Configuration.General.getScreenFactor());
paint.setStyle(Paint.Style.STROKE);
Bitmap arc = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(arc);
canvas.drawColor(0xFFFFFFFF);
canvas.drawArc(rectangle,
(float) (Math.toDegrees(startAngle)),
(float) (Math.toDegrees(sweepAngle)), false, paint);
GroundOverlay groundArc = map.addGroundOverlay(new GroundOverlayOptions()
.image(BitmapDescriptorFactory.fromBitmap(arc))
.position(latlng2, 10000));
在此先感谢。
你在哪里调用这段代码? – 2013-04-22 09:40:02
在显示地图的片段(不是MapFragment,我自己创建的) – Apoz 2013-04-22 09:41:45
在onResume或类似的东西?我想知道这个代码是否偶然被多次调用。 – 2013-04-22 09:45:06