noticed that the application gets slow and the phone becomes
unresponsive. Here's my code:
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = mapa.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
...
class MapOverlay extends com.google.android.maps.Overlay
{
Cursor c;
Bitmap bmp;
private MapOverlay()
{
...initialize Bitmap and then Cursor with around 200 points taken
from a database...
}
@Override
public boolean draw(Canvas canvas, MapView mapView,boolean shadow,
long when)
{
super.draw(canvas, mapView, shadow);
for (int f=0;f<c.getcount();f++) {
c.moveToPosition(f);
Point pt=new Point();
mapView.getProjection().toPixels(new
GeoPoint(c.getInt(0),c.getInt(1)),pt);
canvas.drawBitmap(bmp, pt.x,pt.y-16, null);
Log.i(TAG,"Drawing point "+f);
}
...
After adding the Log.i message I found the problem, the loop is run
endlessly (note that the phone is quiet and there's nothing happening
in the background):
I/XP (10507): Drawing point 0
I/XP (10507): Drawing point 1
...
I/XP (10507): Drawing point 199
I/XP (10507): Drawing point 0
I/XP (10507): Drawing point 1
...
I/XP (10507): Drawing point 199
Is this a "normal" behaviour, a bug in the OS or am I doing something
wrong?
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
No comments:
Post a Comment