选择项目时给气球充气



我有一个map活动,它有许多map引脚,当我单击一个引脚时,会打开一个自定义气球,显示有关该引脚的一些信息。此外,我有一个搜索栏,如果你键入一个旋钮的名称,信息就会出现在那里,但我希望它能转到搜索到的pin。示例:在地图上,您有不同的蔬菜针,当您搜索胡萝卜时,搜索列表将显示元素胡萝卜,当您单击它时,胡萝卜针的气球将膨胀所以,我的问题是:是否存在某种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);
    }
}

相关内容

  • 没有找到相关文章

最新更新