我使用以下代码显示叠加层
p = new GeoPoint((int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
controller = mapview.getController();
controller.setZoom(12);
MapOverlay mapOverlay = new MapOverlay(map.this, p);
List<Overlay> listOfOverlays = mapview.getOverlays();
listOfOverlays.add(mapOverlay);
controller.animateTo(p, new Runnable() {
public void run() {
controller.setZoom(12);
}
});
mapview.invalidate();
和绘制叠加层的文件如下......
super.draw(canvas, mapView, shadow);
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.overlay);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 32, null);
有人可以告诉我,当我点击叠加层时,需要做些什么更改才能显示吐司?
答案 0 :(得分:0)
覆盖叠加层的onTap
方法(here)并调用Toast。
答案 1 :(得分:0)
在这里,我给出了我之前给出的答案的链接,您应该在评论中阅读答案,然后您会找到答案。
if(moreArrowTappedEvent(mapView,p) && isRemovePriorPopup) {
Toast.makeText(this.mapLocationViewer.getContext(), "I am hit", Toast.LENGTH_LONG).show();
flag = true; mapView.invalidate();
mHandler.postDelayed(new Runnable() {
@Override public void run() {
// TODO自动生成的方法存根
flag = false; mapView.invalidate(); },200L);
}
Custom tap window on Google Map
我做了你想做的事。
我希望这是有帮助的。