Android 如何为覆盖项设置标题/标题,并为该项创建onclick/long-pressed侦听器以启动新活动?
我的应用程序将找到我周围的用户,并在地图上显示。 我可以在mapView上添加overlayItem,但如何为图像添加一些标题,例如用户名。 单击该项后,将显示一个对话框 我是否可以设置一个侦听器,当用户单击该框时可以调用新活动? 我的意图是,我可以通过OverlyItem转到用户配置文件。 有可能吗? 谢谢 我已经找到了解决方案,希望与感兴趣的ppl分享。 由于我无法回答自己的问题,我将编辑该问题 要为覆盖项添加标题,请执行以下操作:Android 如何为覆盖项设置标题/标题,并为该项创建onclick/long-pressed侦听器以启动新活动?,android,overlayitem,android-mapview,Android,Overlayitem,Android Mapview,我的应用程序将找到我周围的用户,并在地图上显示。 我可以在mapView上添加overlayItem,但如何为图像添加一些标题,例如用户名。 单击该项后,将显示一个对话框 我是否可以设置一个侦听器,当用户单击该框时可以调用新活动? 我的意图是,我可以通过OverlyItem转到用户配置文件。 有可能吗? 谢谢 我已经找到了解决方案,希望与感兴趣的ppl分享。 由于我无法回答自己的问题,我将编辑该问题 要为覆盖项添加标题,请执行以下操作: @Override public void draw(
@Override
public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow)
{
super.draw(canvas, mapView, shadow);
if (shadow == false)
{
//cycle through all overlays
for (int index = 0; index < mOverlays.size(); index++)
{
OverlayItem item = mOverlays.get(index);
// Converts lat/lng-Point to coordinates on the screen
GeoPoint point = item.getPoint();
Point ptScreenCoord = new Point() ;
mapView.getProjection().toPixels(point, ptScreenCoord);
//Paint
Paint paint = new Paint();
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(mTextSize);
paint.setARGB(150, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)
//show text to the right of the icon
canvas.drawText(item.getTitle(), ptScreenCoord.x, ptScreenCoord.y+mTextSize, paint);
}
}
}
希望这有帮助,干杯 事实上,你可以回答你自己的问题,并将其标记为正确。
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setMessage("Are you sure you want to see this user's profile?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent i = new Intent();
i = new Intent(mContext,
ViewFdProfile.class);
mContext.startActivity(i);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
return true;
}