Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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 OSMDroid映射视图。已成功添加自定义标记,但也显示默认标记?_Android_Android Mapview_Osmdroid - Fatal编程技术网

Android OSMDroid映射视图。已成功添加自定义标记,但也显示默认标记?

Android OSMDroid映射视图。已成功添加自定义标记,但也显示默认标记?,android,android-mapview,osmdroid,Android,Android Mapview,Osmdroid,我的代码如下。基本上,我正在尝试用我的定制标记来替换每个标记,即我的可抽啤酒杯满 在我的自定义覆盖中,这个被覆盖的绘图函数可以完美地完成这项工作,但它也保留了默认图标。因此,我的标记在地图上显示为默认标记顶部的自定义标记 有人知道如何停止显示默认标记吗 干杯 @Override public void draw(Canvas canvas, MapView mapview, boolean shadow) { // TODO Auto-generated method s

我的代码如下。基本上,我正在尝试用我的定制标记来替换每个标记,即我的可抽啤酒杯满

在我的自定义覆盖中,这个被覆盖的绘图函数可以完美地完成这项工作,但它也保留了默认图标。因此,我的标记在地图上显示为默认标记顶部的自定义标记

有人知道如何停止显示默认标记吗

干杯

@Override
    public void draw(Canvas canvas, MapView mapview, boolean shadow) {
        // TODO Auto-generated method stub
        super.draw(canvas, mapview, shadow);

        if(!shadow)
        {
        for (int ctr = 0; ctr < myOverlays.size(); ctr++)
        {
            GeoPoint in = myOverlays.get(ctr).getPoint();

            //Toast.makeText(mapview.getContext(), ctr, Toast.LENGTH_SHORT).show();

            Point out = new Point();
            mapview.getProjection().toPixels(in, out);

            Bitmap bm = BitmapFactory.decodeResource(mapview.getResources(), 
              R.drawable.beer_full);


            canvas.drawBitmap(bm, 
              out.x - bm.getWidth()/2,  //shift the bitmap center
              out.y - bm.getHeight()/2,  //shift the bitmap center
              null);
        }
        }
    }
@覆盖
公共空白绘制(画布、地图视图、地图视图、布尔阴影){
//TODO自动生成的方法存根
super.draw(画布、地图视图、阴影);
如果(!阴影)
{
对于(int-ctr=0;ctr
删除线
super.draw(画布、地图视图、阴影)。您基本上是在绘制默认图标(通过调用
draw
方法的默认实现),然后在其上绘制自定义图标。

您可以删除
super.draw(画布、地图视图、阴影)
并检查发生了什么吗?它可以工作:)我是个白痴。那么,我是否正确地理解了,通过使用超级构造函数,它也只是调用了默认的draw函数?没有超级构造函数还有其他问题吗?那不是一个构造函数,它只是一个方法。是的,你是对的,你告诉超类绘制默认图标,然后绘制自定义图标。至于不在超级类上调用draw的任何问题,这将取决于它是如何实现的,但是如果您在没有问题的情况下尝试它,这几乎不会是一个问题。如果您可以访问超级类源代码,我建议您检查一下,看看他们是否在那里做了其他事情。