Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 地图视图标记阴影_Android_Android Mapview_Marker - Fatal编程技术网

Android 地图视图标记阴影

Android 地图视图标记阴影,android,android-mapview,marker,Android,Android Mapview,Marker,我正在向地图添加不同的标记 Drawable drawable = app1.getResources().getDrawable(R.drawable.test); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); OverlayItem overlayitem2 = new OverlayItem(mark, "Test", "t"); overlayitem2.set

我正在向地图添加不同的标记

Drawable drawable = app1.getResources().getDrawable(R.drawable.test);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
OverlayItem overlayitem2 = new OverlayItem(mark, "Test", "t");
overlayitem2.setMarker(drawable);
app1.mapOverlay.addOverlay(overlayitem2);
app1.mapOverlays.add(app1.mapOverlay);
这是可行的,但阴影位于错误的位置

我用这个:

int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
drawable.setBounds(-w / 2, -h, w / 2, 0);

我知道这一点不久前已经得到了回答,但我想指出ItemizeOverlay类中有一个名为:boundCenterBottom(Drawable)的方法,它完成了setBounds部分。还有一个boundCenter(可绘制)方法

只需在ItemizeOverlay扩展类中添加这些行即可

范例

public class My_MapOverlay extends ItemizedOverlay<OverlayItem> { 

    @Override
    public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        super.draw(canvas, mapView, false);
    }

    public My_MapOverlay(Drawable arg0) {
        super(arg0);
    }
}
公共类My_MapOverlay扩展了ItemizeOverlay{
@凌驾
公共空白绘制(画布、地图视图、地图视图、布尔阴影){
super.draw(画布、地图视图、假);
}
公共My_MapOverlay(可绘制arg0){
超级(arg0);
}
}

我遇到了完全相同的问题,甚至使用了相同的标记图像来源:),Mathias的答案非常准确。