之前在网上看到有人写过这个教程,但是给的代码都一块一块的,没有给源码,看得非常辛苦,这让我们这些初学者情何以堪
自己研究好久终于研究出来了,在这里分享给大家!(转载请注明谢谢!)
开始没有修改时:
主要是要自定一个内部类继承自MyLocationOverlay
// 自定义myloactionoverlay public class MyOverLay extends MyLocationOverlay {
public Bitmap bitmap;
public void setBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
}
public MyOverLay(Context arg0, MapView arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
// 重写描绘我的位置的方法
@Override
protected void drawMyLocation(Canvas canvas, MapView mapView,
Location location, GeoPoint geoPoint, long when) {
try {
Projection projection = mapView.getProjection();
Point point = new Point();
projection.toPixels(geoPoint, point);
// point获取到的是我们在屏幕上的点.而我们要显示的图标应该在这个点的正上方
int x = point.x - bitmap.getWidth();
int y = point.y - bitmap.getHeight();
canvas.drawBitmap(bitmap, x, y, new Paint());
} catch (Exception e) {
// TODO: handle exception
super.drawMyLocation(canvas, mapView, location, geoPoint, when);
}
}
}
然后添加一个方法进行实例化,传入bitmap
//添加自己定义的overlay
public void addMyOverLay() {
myOverLay = new MyOverLay(this, mapView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.p);//自定义图标
myOverLay.setBitmap(bitmap);
mapView.getOverlays().add(myOverLay);//把我的位置加入地图
}
其他都是原来的百度定位的一些方法不用变
效果:
这样那个蓝色标志就变成了QQ了
如果对你有帮助请顶贴..........
源码回复可见:
自己研究好久终于研究出来了,在这里分享给大家!(转载请注明谢谢!)
开始没有修改时:
主要是要自定一个内部类继承自MyLocationOverlay
// 自定义myloactionoverlay public class MyOverLay extends MyLocationOverlay {
public Bitmap bitmap;
public void setBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
}
public MyOverLay(Context arg0, MapView arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
// 重写描绘我的位置的方法
@Override
protected void drawMyLocation(Canvas canvas, MapView mapView,
Location location, GeoPoint geoPoint, long when) {
try {
Projection projection = mapView.getProjection();
Point point = new Point();
projection.toPixels(geoPoint, point);
// point获取到的是我们在屏幕上的点.而我们要显示的图标应该在这个点的正上方
int x = point.x - bitmap.getWidth();
int y = point.y - bitmap.getHeight();
canvas.drawBitmap(bitmap, x, y, new Paint());
} catch (Exception e) {
// TODO: handle exception
super.drawMyLocation(canvas, mapView, location, geoPoint, when);
}
}
}
然后添加一个方法进行实例化,传入bitmap
//添加自己定义的overlay
public void addMyOverLay() {
myOverLay = new MyOverLay(this, mapView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.p);//自定义图标
myOverLay.setBitmap(bitmap);
mapView.getOverlays().add(myOverLay);//把我的位置加入地图
}
其他都是原来的百度定位的一些方法不用变
效果:
这样那个蓝色标志就变成了QQ了
如果对你有帮助请顶贴..........
源码回复可见: