Özel bir OverlayItem sınıfı oluşturdum, böylece Drawable işaretçisinin kendisine geçirdiğim bazı verilere bağlı olarak kendisini ayarlayabileceği bir tür OverlayItem oluşturabileyim.Custom OverlayItem çizim değil
Bunu, ilk denememde OverlayItem sınıfındaki setMarker
yöntemini kullanarak gerçekleştirmeye çalıştım. Bu çalışmazsa, getMarker
yöntemini geçersiz kılmaya çalışıyorum ve verileri temsil etmek için uygun işaretleyiciyi döndürmesini sağlarım.
Bu girişimlerin her ikisi de haritada çizilmiş bir şeyle sonuçlanmadı ... ancak eğer yorumlanırlarsa, işaretçiler yalnızca iyi çizerler (tabii ki istedikleri gibi değil, varsayılan işaretçiyi kullanırlar).
İşte benim özel OverlayItem sınıf için benim kodudur (yorumlandı yöntemler denedim ve işe yaradıkları edilmemiştir):
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);
}*/
}
ben çalışırken yapmak ne yapacağını bir yolu var mı ... veya verilerimin her durumuna karşılık gelen benzersiz bir OverlayItem sınıfı oluşturmam gerekiyor mu? (Ew.)
Çizim (...) yöntemini mi kastediyorsunuz? Bu çok karmaşık ve çok fazla bir çözüm olurdu gibi görünüyor. Bu belge, "Bir öğe OverlayItem.getMarker (int) yöntemi aracılığıyla alternatif bir işaretçi sağlayabilir. Bu yöntem null değerini döndürürse, varsayılan işaretçi kullanılır", bu nedenle getMarker yöntemini geçersiz kılmamalıyım ve farklı işaretleyicileri çizsin mi? – celestialorb