Что я хочу сделать: я хочу настроить наложение маршрутов на карте Google в Android!
Что я сделал до сих пор: я проанализировал файл (географические точки) и получил их!Я использую Asynctask.Мой оверлейный класс имеет собственный метод рисования.Я использовал destroyDrawingCache () в моей функции рисования.
Проблемы, с которыми я столкнулся: во время работы приложения оно превышает размер ошибки.Я вижу, что на момент ошибки размер кучи составляет около 12 МБ.
Кто-нибудь может мне помочь?Спасибо!
/////////////////////////////Error Message/////////////////////////////
10-11 19:23:02.059: ERROR/AndroidRuntime(483): FATAL EXCEPTION: main
10-11 19:23:02.059: ERROR/AndroidRuntime(483): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.graphics.Bitmap.nativeCreate(Native Method)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.android.maps.StreetViewRenderer.generateNewTileImage(StreetViewRenderer.java:120)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.android.maps.StreetViewRenderer.renderTile(StreetViewRenderer.java:88)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.android.maps.AndroidTileOverlayRenderer.renderTile(AndroidTileOverlayRenderer.java:62)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.googlenav.map.Map.drawTile(Unknown Source)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.googlenav.map.Map.drawMapBackground(Unknown Source)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.googlenav.map.Map.drawMap(Unknown Source)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.android.maps.MapView.drawMap(MapView.java:1048)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.google.android.maps.MapView.onDraw(MapView.java:486)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.View.draw(View.java:6740)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.View.draw(View.java:6743)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.widget.FrameLayout.draw(FrameLayout.java:352)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.View.draw(View.java:6743)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.widget.FrameLayout.draw(FrameLayout.java:352)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewRoot.draw(ViewRoot.java:1407)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.os.Handler.dispatchMessage(Handler.java:99)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.os.Looper.loop(Looper.java:123)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at java.lang.reflect.Method.invokeNative(Native Method)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at java.lang.reflect.Method.invoke(Method.java:521)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-11 19:23:02.059: ERROR/AndroidRuntime(483): at dalvik.system.NativeStart.main(Native Method)
/////////////////////////////////////////////////////////////
код розыгрыша:
public void draw(Canvas canvas, MapView mapv, boolean shadow){
BusLoc.myMapView.destroyDrawingCache ();
super.draw(canvas, mapv, shadow);
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(2);
//ah1[0][0]=35767138;
//ah1[0][1]=-78695548;
//ah1[1][0]=35787497;
//ah1[1][1]=-78667474;
Log.d("MyOverlay","OnDraw");
int in=0;
for(in=0;in<ind-1;in++)
{
if (ah1[in][0] ==0 ||(ah1[in+1][0]==0)) break;
if((ah1[in][0] !=0) &&(ah1[in+1][0]!=0))
{
GeoPoint gP1 = new GeoPoint((int)(ah1[in][0]*1e6),(int)(ah1[in][1]*1e6));
GeoPoint gP2 = new GeoPoint((int)(ah1[in+1][0]*1e6),(int)(ah1[in+1][1]*1e6));
Point p1 = new Point();
Point p2 = new Point();
Path path = new Path();
Projection projection = BusLoc.myMapView.getProjection();
projection.toPixels(gP1, p1);
projection.toPixels(gP2, p2);
path.moveTo(p2.x, p2.y);
path.lineTo(p1.x,p1.y);
canvas.drawPath(path, mPaint);
Log.d("MyOverlay","drawn: "+gP1.toString()+":"+gP2.toString());
}
}
BusLoc.myMapView.destroyDrawingCache ();
}