Я создал собственный класс OverlayItem, чтобы по сути иметь один вид OverlayItem, маркер Drawable которого мог бы устанавливать себя в зависимости от состояния некоторых данных, которые я передаю в него.
Я попытался выполнить этопри первой попытке использования метода setMarker
в классе OverlayItem.Как только это не сработало, я пытаюсь переопределить метод getMarker
и заставить его вернуть соответствующий маркер для представления данных.
Обе эти попытки закончились ничем не нарисованным на карте ... однако, если онизакомментированы маркеры рисуются просто отлично (за исключением того, что они, конечно, используют маркер по умолчанию, а это не то, что я хочу)и они не сработали):
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, соответствующий каждому состоянию моих данных?(Еа.)