【发布时间】:2010-08-10 20:07:58
【问题描述】:
我创建了一个自定义的 OverlayItem 类,这样我就可以拥有一种 OverlayItem,它的 Drawable 标记会根据我传递给它的某些数据的状态来设置自己。
我第一次尝试通过使用 OverlayItem 类中的setMarker 方法来实现这一点。一旦这不起作用,我会尝试覆盖 getMarker 方法并让它返回适当的标记来表示数据。
这两次尝试都没有在地图上绘制任何内容...但是,如果将它们注释掉,标记就可以正常绘制(当然它们使用默认标记,这不是我想要的)。
这是我的自定义 OverlayItem 类的代码(我尝试过的注释掉的方法,但它们没有奏效):
private class MyOverlayItem extends OverlayItem {
private Context mContext;
private MyData mData;
public MyOverlayItem(GeoPoint point, MyData data, Context context) {
super(point, data.getWhat(), data.getWhere());
this.mContext = context;
this.mData = data;
/*if(data.getTemp() > 200)
this.setMarker(res.getDrawable(R.drawable.icon_data_hot_l));
else if(data.getTemp() > 100)
this.setMarker(res.getDrawable(R.drawable.icon_data_neutral_l));
else
this.setMarker(res.getDrawable(R.drawable.icon_data_frozen_l));*/
}
/*@Override
public Drawable getMarker(int stateBitset) {
Resources res = this.mContext.getResources();
if(this.mData.getTemp() > 200)
return res.getDrawable(R.drawable.icon_data_hot_l);
else if(this.mData.getTemp() > 100)
return res.getDrawable(R.drawable.icon_data_neutral_l);
return res.getDrawable(R.drawable.icon_data_frozen_l);
}*/
}
有没有办法做我正在尝试做的事情......或者我需要创建一个与我的数据的每个状态相对应的唯一 OverlayItem 类? (Ew.)
【问题讨论】:
标签: android google-maps overlay drawable