# RuntimeViewer3D **Repository Path**: mx_fengxi/RuntimeViewer3D ## Basic Information - **Project Name**: RuntimeViewer3D - **Description**: 基于ArcGIS Runtime 100.x开发的移动应用程序框架(三维) http://www.cnblogs.com/gis-luq/ - **Primary Language**: Android - **License**: Not specified - **Default Branch**: developer - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 22 - **Created**: 2018-07-02 - **Last Updated**: 2020-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuntimeViewer ## —— 基于ArcGIS Runtime 100.x开发的移动应用程序框架 组件式开发框架,兼容手机、平板多种设备。 #### 平板模式 ![ ](./readme/pad.png '平板模式') #### 手机模式
如何快速运行应用程序? =========== * 使用git工具下来工程并将工程导入Android Studio * 拷贝工程目录下/readme/工程结构示例/RuntimeViewer到手机存储根目录下(因为示例程序数据源均为离线) * 运行应用程序 框架使用说明 ====== ![ ](./readme/20180328105641.png '描述') 项目采用插件化结构设计,文件夹架构说明如下 * Base —— 应用程序基类 * BMOD —— 业务功能模块 * MapModule —— 地图模块 * ProjectsModule —— 工程列表模块 * RootAct —— 应用程序启动页 * SystemModule —— 系统功能模块 * Common —— 公共功能 * Config —— App配置信息、初始化信息 * EventBus —— 事件中心 * GloabApp —— 应用程序全局信息Application * Permission —— 权限控制 * Utils —— 工具类 * Widget —— 功能组件文件夹 * Common —— 公共功能 * LayerManagerWidget —— 图层管理 * …… 配置文件说明 ============== ```xml ``` 说明: 1. runtimekey的license为ArcGIS Runtime 1000.x许可信息,请获取后替换。 2. workspace的path为系统工作空间目录,设置后app会自动初始化文件夹结构信息 3. widget模块,label为应用程序名称,classname为对应widget类实体,程序加载过会自动初始化。必须填写。 框架功能模块开发 ==================== ### widget开发 #### 1. 创建widget组件类 在Widgets目录下创建HelloWorldWidget.java文件并添加以下内容。 建议类名的命名规则为 [业务名称+Widget].java 以保证统一。 ```java /** * 测试用组件 * Created by gis-luq on 2018/3/10. */ public class HelloWorldWidget extends BaseWidget { public View mWidgetView = null;// /** * 组件面板打开时,执行的操作 * 当点击widget按钮是, WidgetManager将会调用这个方法,面板打开后的代码逻辑. * 面板关闭将会调用 "inactive" 方法 */ @Override public void active() { super.active();//默认需要调用,以保证切换到其他widget时,本widget可以正确执行inactive()方法并关闭 super.showWidget(mWidgetView);//加载UI并显示 super.showMessageBox(super.name);//显示组件名称 } /** * widget组件的初始化操作,包括设置view内容,逻辑等 * 该方法在应用程序加载完成后执行 */ @Override public void create() { LayoutInflater mLayoutInflater = LayoutInflater.from(super.context); //设置widget组件显示内容 mWidgetView = mLayoutInflater.inflate(R.layout.widget_view_helloworld,null); } /** * 组件面板关闭时,执行的操作 * 面板关闭将会调用 "inactive" 方法 */ @Override public void inactive(){ super.inactive(); } } ``` #### 2. 创建widget组件UI 在android工程的layout文件夹下创建widget_view_helloworld.xml文件,并添加如下内容。 ```xml