mAppWidget - 2. 去除地图开发团队水印

本文介绍了一种通过修改MapWidget类来移除地图上的开发者水印的方法。具体步骤包括定位水印代码、创建自定义子类并重写绘图方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我家淘宝店,主要协助同学做毕业设计:https://shop104550034.taobao.com/?spm=2013.1.1000126.d21.pPCzDZ

1. 开发者所留的水印

这里写图片描述

在地图上,我们可以观察到开发者留下了一个公司水印,在我们的开发过程中不希望使用人员看到这个图标,现在要去掉他。
这里写图片描述

2.删除水印

1. 定位水印在开发者代码中的位置

在MapWidget类中我们找到了地图绘画的方法。

    @Override
    protected void onDraw(Canvas canvas) {
        this.getDrawingRect(drawingRect);

        if (config != null) {
            if (prevGrid != null) {
                prevGrid.draw(canvas, paint, drawingRect);
            }

            if (grid != null) {
                grid.draw(canvas, paint, drawingRect);
            }

            drawLayers(canvas, drawingRect);

            if (logo != null) {
                canvas.drawBitmap(logo,
                        getWidth() + getScrollX() - logo.getWidth() - 10,
                        getHeight() + getScrollY() - logo.getHeight() - 10,
                        null);
            }
        } else {
            scrollTo(0, 0);
            drawMissingDataErrorMessage(canvas);
        }
    }

我们可以看到如下代码绘制了log图标

    if (logo != null) {
        canvas.drawBitmap(logo,
        getWidth() + getScrollX() - logo.getWidth() - 10,
        getHeight() + getScrollY() - logo.getHeight() - 10,
        null);
    }

2. 创建继承自MapWidget的子类

在包含有原作者代码时,不建议粗暴删除代码,最好创建一个继承自MapWidget的子类,在其上进行删减
创建RoadWayMapWidget

public class RoadWayMapWidget extends MapWidget{


    /**
     * 
     * @param context
     *          -context
     * @param rootMapFolder
     *          -地图资源文件名
     * @param initialZoomLevel
     *          -初始化缩放等级
     * @date  2016年4月1日上午9:11:39
     */
    public RoadWayMapWidget(Context context, String rootMapFolder,int initialZoomLevel) {
        super(context, rootMapFolder, initialZoomLevel);    
        // TODO Auto-generated constructor stub
    }
}

3. 重写onDraw方法

重写onDraw方法,但是删除了绘制图标的代码,如下:

    @Override
    protected void onDraw(Canvas canvas) {
        this.getDrawingRect(drawingRect);

        if (config != null) {
            if (prevGrid != null) {
                prevGrid.draw(canvas, paint, drawingRect);
            }

            if (grid != null) {
                grid.draw(canvas, paint, drawingRect);
            }

            drawLayers(canvas, drawingRect);
        } else {
            scrollTo(0, 0);
            drawMissingDataErrorMessage(canvas);
        }
    }

3. 测试

修改MainActivity 如下所示:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final RoadWayMapWidget map = new RoadWayMapWidget(this, "map23",15);
        LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);     
        map.getConfig().setZoomBtnsVisible(false);
        layout.addView(map);
    }
}

这里写图片描述

4. 结论

在这里,我们已经去掉了水印图标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值