mAppWidget - 2. 去除地图开发团队水印
2016-05-07 09:13
295 查看
我家淘宝店,主要协助同学做毕业设计: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. 结论
在这里,我们已经去掉了水印图标相关文章推荐
- Android Property机制
- iOS常用代码
- Swift中方法闭包参数不能省略括号的一种情况
- Swift中方法闭包参数不能省略括号的一种情况
- Swift中方法闭包参数不能省略括号的一种情况
- Android系统自带样式(@android:style/)
- 关于android核心组件Activity的一些总结
- 【android】 Unable to open content: file:///sdcard/hello.3gp 3gp视频不能播放
- Android Preference 须知
- android基础总结篇之四:Service完全解析
- 安卓异常android.os.networkonmainthreadexception的解决方法
- Android Lollipop (5.0) 原生代码 Settings 首页加载逻辑分析
- Android 切换系统语言源码分析
- 手把手教你扩展个人微信号(1)
- 从零开始熟悉AS中手机app的开发(一)
- 安卓中app与service之间交互的五种方式
- Android Settings开发之修改
- android 基础总结篇之三:Activity的task相关
- Android 4.4 Settings 应用初步分析
- Android开发:关于Android Settings中的八个问题