1

我在我的地圖上顯示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)); 

在此先感謝。

+0

你在哪裏調用這段代碼? – 2013-04-22 09:40:02

+0

在顯示地圖的片段(不是MapFragment,我自己創建的) – Apoz 2013-04-22 09:41:45

+0

在onResume或類似的東西?我想知道這個代碼是否偶然被多次調用。 – 2013-04-22 09:45:06

回答

1

與標記一起使用時,存在與BitmapDescriptorFactory.fromBitmap()相關的已知內存泄漏問題。這可能是一個問題,但首先嚐試:

GroundOverlay.remove() 

在調用GoogleMap.addGroundOverlay之前添加了對象。

+0

我剛剛添加了這個,它似乎工作,謝謝!不過,我仍然有問題,未顯示弧線。 – Apoz 2013-04-22 09:52:51

+0

也許是筆畫寬度值的問題?嘗試硬編碼100作爲寬度。 – 2013-04-22 09:56:08

+0

它還沒有工作,對不起。 – Apoz 2013-04-22 11:06:47

相關問題