在android map overlay中使用图片

android编写最简单的地标提示Overlay中使用的是文字提示,还可以设置图片,比如这样:

image

这需要稍微修改一下代码,在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));

另外,需要将图片放置在:

image

PDF    发送文章为PDF   

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply