来自:http://blog.csdn.net/arcgis_mobile/article/details/8084763

GISpace博客《ArcGIS for Android入门程序之DrawTool》http://blog.csdn.net/gispace/article/details/6723459在ArcGIS Android SDK 0.9版本实现绘制各种几个图形。ArcGIS Android SDK目前版本为2.0,较之前版本变化较大,故将之前版本移植到2.0版本下。源代码下载地址:http://download.csdn.net/detail/arcgis_mobile/4659389

该程序主要说明如何处理与MapView交互的各种事件,以订阅发布模式封装几何图形绘制工具类DrawTool,使用方法如下:

[java] view plain copy
  1. <spanstyle="font-family:CourierNew;font-size:18px;">packagecn.com.esrichina.drawtool;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.view.Menu;
  5. importandroid.view.MenuInflater;
  6. importandroid.view.MenuItem;
  7. importcom.esri.android.map.GraphicsLayer;
  8. importcom.esri.android.map.MapView;
  9. importcom.esri.android.map.ags.ArcGISTiledMapServiceLayer;
  10. publicclassDrawToolActivityextendsActivityimplementsDrawEventListener{
  11. privateMapViewmapView;
  12. privateGraphicsLayerdrawLayer;
  13. privateDrawTooldrawTool;
  14. publicvoidonCreate(BundlesavedInstanceState){
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. this.mapView=(MapView)this.findViewById(R.id.map);
  18. //添加底图
  19. this.mapView
  20. .addLayer(newArcGISTiledMapServiceLayer(
  21. "http://www.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"));
  22. //在drawLayer上绘制几何图形
  23. this.drawLayer=newGraphicsLayer();
  24. this.mapView.addLayer(this.drawLayer);
  25. this.drawTool=newDrawTool(this.mapView);
  26. //此类实现DawEventListener接口
  27. this.drawTool.addEventListener(this);
  28. }
  29. publicbooleanonCreateOptionsMenu(Menumenu){
  30. MenuInflaterinflater=this.getMenuInflater();
  31. inflater.inflate(R.menu.menu,menu);
  32. returntrue;
  33. }
  34. @Override
  35. publicbooleanonOptionsItemSelected(MenuItemitem){
  36. switch(item.getItemId()){
  37. caseR.id.point:
  38. drawTool.activate(DrawTool.POINT);
  39. break;
  40. caseR.id.envelope:
  41. drawTool.activate(DrawTool.ENVELOPE);
  42. break;
  43. caseR.id.polygon:
  44. drawTool.activate(DrawTool.POLYGON);
  45. break;
  46. caseR.id.polyline:
  47. drawTool.activate(DrawTool.POLYLINE);
  48. break;
  49. caseR.id.freehandpolygon:
  50. drawTool.activate(DrawTool.FREEHAND_POLYGON);
  51. break;
  52. caseR.id.freehandpolyline:
  53. drawTool.activate(DrawTool.FREEHAND_POLYLINE);
  54. break;
  55. caseR.id.circle:
  56. drawTool.activate(DrawTool.CIRCLE);
  57. break;
  58. caseR.id.clear:
  59. this.drawLayer.removeAll();
  60. this.drawTool.deactivate();
  61. break;
  62. }
  63. returntrue;
  64. }
  65. //实现DrawEventListener中定义的方法
  66. publicvoidhandleDrawEvent(DrawEventevent){
  67. //将画好的图形(已经实例化了Graphic),添加到drawLayer中并刷新显示
  68. this.drawLayer.addGraphic(event.getDrawGraphic());
  69. }
  70. @Override
  71. protectedvoidonDestroy(){
  72. super.onDestroy();
  73. }
  74. }</span>


在Android模拟器执行效果图如下:

更多相关文章

  1. ubuntu gradle编译总结
  2. android support-v4、v7、v13
  3. android 交叉编译工具的设置
  4. Android(安卓)Studio 无法引用org.apache.http解决办法
  5. Android(安卓)DataBinding 快速入门
  6. Eclipse导入Android项目的正确方法
  7. 导入xUtils_3 工程到Android(安卓)Studio
  8. Android获取APP的应用程序名称、包名、图标,版本号基本信息
  9. Phonegap开发Android版本的二维码扫码

随机推荐

  1. App测试在IOS和android系统中的区别
  2. Android逐帧动画
  3. 探寻PhoneGap的真面目
  4. Dagger2 的简单使用
  5. Android(安卓)壁纸设置代码 详解
  6. Android面试题整理-3
  7. android 认识
  8. Android性能调优篇之内存泄露
  9. android ---Using java surface on the n
  10. Android(安卓)Service 两种编写及应用