アイテムが選択されているときにバルーンを膨らませる
-
09-09-2020 - |
質問
私は地図のピンが多い地図活動を持っています、そして私がピンをクリックすると、そのピンに関する情報を表示します。また、検索バーを持っています。ノブの名前を入力すると、その情報が表示されますが、検索されたピンに移動したいです。 例: 地図上の野菜のピンが異なります、そしてニンジンを検索するとき、検索リストは要素にかけて表示され、それをクリックすると、カローのピンのバルーンは膨らんだ。だから、私の質問は、ある種の ontap ()voidメソッドはありますか?私は知っています、その ontap (int index)はブール値を返します。
解決
あなた自身の明細オーバーレイを作成し、ontapメソッドをオーバーライドし、メインクラスで、アイテム化されたオーバーレイのインスタンスを作成し、Overlay.ontap(Point)
を呼び出します。サンプルコード:
public class MyItemizedOverlay<Item> extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> m_overlays;
private MapView mapView;
final MapController mc;
public MyItemizedOverlay(Drawable defaultMarker, MapView mapView) {
super(boundCenterBottom(defaultMarker), mapView);
m_overlays = new ArrayList<OverlayItem>();
mc = mapView.getController();
populate();
}
public void addOverlay(OverlayItem overlay) {
m_overlays.add(overlay);
setLastFocusedIndex(-1);
populate();
}
public ArrayList<OverlayItem> getOverlays() {
return m_overlays;
}
public final boolean onTap(int index) {
GeoPoint point;
point = createItem(index).getPoint();
mc.animateTo(point);
return true;
}
...
}
.
メインクラス
public class Main extends MapActivity {
private MapView mapView;
private List<Overlay> mapOverlays;
private MyItemizedOverlay overlay;
private Drawable pin;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
doAction();
}
private void doAction() {
mapView = (MapView)findViewById(R.id.map_view);
pin = res.getDrawable(R.drawable.pin);
overlay = new MyItemizedOverlay(pin, mapView);
GeoPoint point = new GeoPoint((int)(7*1E6),(int)(42*1E6));
overlayItem = new OverlayItem(point, "title", "text");
overlay.addOverlay(overlayItem);
mapOverlays = mapView.getOverlays();
mapOverlays.add(overlay);
//we tap the point here
overlay.onTap(0);
}
}
. 所属していません StackOverflow