我創建了一個自定義OverlayItem類,以便我基本上可以擁有一種OverlayItem,其Drawable標記將根據我傳入的某些數據的狀態自行設置。自定義OverlayItem沒有繪製
我試圖通過在我的第一次嘗試中使用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。)
你的意思是繪製(...)方法?這看起來好像太複雜了,太多的解決方法。 該文檔指出,「一個項目可以通過其OverlayItem.getMarker(int)方法提供替代標記,如果該方法返回null,則使用默認標記」,所以我不能覆蓋getMarker方法並讓它畫出不同的標記? – celestialorb 2010-08-10 20:45:22