在android map overlay中使用图片
在android编写最简单的地标提示Overlay中使用的是文字提示,还可以设置图片,比如这样:
这需要稍微修改一下代码,在Canvas上draw一个图片,而不是文字:
package proto.location;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;public class MyPositionOverlay extends Overlay {
private GeoPoint geoPoint;
private Context context;
private int drawable;public MyPositionOverlay(GeoPoint geoPoint, Context context, int drawable) {
super();
this.geoPoint = geoPoint;
this.context = context;
this.drawable = drawable;
}@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {Projection projection = mapView.getProjection();
Point point = new Point();
projection.toPixels(geoPoint, point);Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
drawable);
canvas.drawBitmap(bitmap, point.x – bitmap.getWidth() , point.y
– bitmap.getHeight() , null);
super.draw(canvas, mapView, shadow);
}
}
在MapActivity中的调用代码:
overlays.add(new MyPositionOverlay(this.geoPoint, this, R.drawable.c1));
另外,需要将图片放置在:
这篇文章上的评论的 RSS feed TrackBack URI