如果添加x和y坐标,为什么MapView.LayoutParams MODE_VIEW不起作用?

时间:2012-05-23 11:55:57

标签: android android-mapview layoutparams

当我向MapView.LayoutParams构造函数添加x和y坐标时。它的MODE_VIEW行为消失了。我想要这种行为以及x和y坐标。我不知道为什么会发生这种情况。

public void addMarkerToMAp(GeoPoint geoPoint) {
    mapView.removeAllViews();

    final ImageView view = new ImageView(mapView.getContext());
    view.setImageResource(R.drawable.map_marker_anim);
    view.post(new Runnable() {
        @Override
        public void run() {
            AnimationDrawable animationDrawable = (AnimationDrawable) view.getDrawable();
            animationDrawable.start();
        }
    });

    mapView.addView(view);
    MapView.LayoutParams layoutParams = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT,
        MapView.LayoutParams.WRAP_CONTENT,
        geoPoint,
        MapView.LayoutParams.MODE_VIEW);
    view.setLayoutParams(layoutParams);
}

所以,我把geoPoint作为

geoPoint = mapView.getProjection()。fromPixels((int)event.getX(),(int)event.getY()); 其中event是click事件。

此外,我想在(event.getX(),event.getY())中显示标记引脚,但它显示在单击下方。

1 个答案:

答案 0 :(得分:0)

如果您在eclipse中编码,请按ctrl + shift + f。这将使您的代码更具可读性。 话虽这么说,当你显示标记时,你使用哪些点? 如果我没有错,那么你要插入的点,如果它的叠加可绘制,将是左下角。

如果它是一个视图(我认为那是你在做什么),那么它将会出现在你的点击下。

您可以添加offsetx和offsety为-view.getWidth()/ 2和-view.getHeight / 2。然后应该使您的视图直接在您按下的点下居中。 您可能无法获得view.getWidth / Height,因此请确保它不会返回0.