当我向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())中显示标记引脚,但它显示在单击下方。
答案 0 :(得分:0)
如果您在eclipse中编码,请按ctrl + shift + f。这将使您的代码更具可读性。 话虽这么说,当你显示标记时,你使用哪些点? 如果我没有错,那么你要插入的点,如果它的叠加可绘制,将是左下角。
如果它是一个视图(我认为那是你在做什么),那么它将会出现在你的点击下。
您可以添加offsetx和offsety为-view.getWidth()/ 2和-view.getHeight / 2。然后应该使您的视图直接在您按下的点下居中。 您可能无法获得view.getWidth / Height,因此请确保它不会返回0.