好吧我尝试在地图中从数据库中绘制图标...但我有空指针异常..
我这样做..
public enum icon { lake }
[...] 公共类POI实现Serializable { private static final long serialVersionUID = -8618762943599351669L;
private long id;
private String name;
private double longitude;
private double latitude;
private boolean visible = true;
public static String icon;
private String info;
public POI(long id, String name, double longitude, double latitude, boolean visible, String icon, String info)
{
this(id, name, longitude, latitude, visible, icon, info, true);
}
public POI(long id, String name, double longitude, double latitude, boolean visible, String icon, String info, boolean b)
{
this.id = id;
this.name = name;
this.longitude = longitude;
this.latitude = latitude;
this.visible = visible;
POI.icon = icon;
this.info = info;
}
void initOverlays()
{
Map<icon, Bitmap> markersIcons = new HashMap<icon, Bitmap>();
Bitmap posMarker = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
Bitmap pathMarker = BitmapFactory.decodeResource(getResources(), R.drawable.dest);
Bitmap church = BitmapFactory.decodeResource(getResources(), R.drawable.church);
TilesManager tilesManager = mapView.getTilesManager();
tracksOverlay = new TracksOverlay(this, tilesManager);
positionMarkerOverlay = new PositionMarkerOverlay(tilesManager, posMarker);
markersIcons.put(icon.church, church);
poiOverlay = new POIOverlay(tilesManager, this, markersIcons);
pathOverlay = new PathOverlay(tilesManager, pathMarker);
mapView.addOverlay(tracksOverlay);
mapView.addOverlay(poiOverlay);
mapView.addOverlay(positionMarkerOverlay);
mapView.addOverlay(pathOverlay);
StateManager.restoreTracksOverlayState(this, tracksOverlay);
StateManager.restorePOIOverlayState(this, poiOverlay);
StateManager.restorePathOverlayState(this, pathOverlay);
}
在我从数据库中绘制图标后,我进入&#34;湖&#34;在图标的柱子..
public POIOverlay(TilesManager tilesManager, Context context,Map<icon, Bitmap> poiMarker)
{
super(tilesManager);
this.context = context;
this.setPoiMarker(poiMarker);
textPaint.setColor(Color.BLACK);
textPaint.setTextSize(15);
}
@Override
protected void drawOverlay(Canvas canvas, int x, int y)
{
for (POI poi : points)
{
if (!poi.isVisible()) continue;
Point poiPos = tilesManager.lonLatToPixelXY(poi.getLongitude(), poi.getLatitude());
int finalX = poiPos.x + x;
int finalY = poiPos.y + y;
Bitmap marker = markersIcons.get(POI.icon);
canvas.drawBitmap(marker, finalX - marker.getWidth() / 2, finalY - marker.getHeight() / 2, bitmapPaint);
canvas.drawText(poi.getName(), finalX - marker.getWidth() / 2, finalY, textPaint);
}
}
但我有来自POI.icon的空指针我做断点调试和poi.icon是null无法从数据库读取字符串...为什么????需要帮助!!