androidstudio加载矢量图

VectorDrawable 是android SDK 21及以上版本才支持的方式,在它及它以上的版本中SDK可以支持矢量图。由于国内手机大多还是4.0+的系统,因此在低版本的手机中无法使用矢量图。

在android studio的gradle plugin 更新到1.4版本的时候,googole通过android studio 工具使用兼容的方式让我们来使用矢量图

具体使用步骤如下:

  1. 生成android支持的矢量图
    1.1 生成指定的vector格式的文件
    默认美工给的图是工具生成的SVG格式的图片,它的描述方式和android支持的格式略有不同,需要转换下格式。使用开源组件svg2android 托动svg文件生成xml格式的矢量图。
    1.2 放到指定位置
    生成的文件放到项目的src/main/res/drawable的目录下面。
    2.配置gradle支持脚本
    在项目的根目录的build.gradle文件中指定gradle的编译版本必须是1.4或以上。

3.使用
1.1 build项目
编译后,得到各个dpi对应的图片
1.2 使用
在layout的xml中直接使用

示例:

1、得到美工给的ic_search.svg文件,打开svg2android (为了方便使用,下载这个网页工具,本地转换)生成得到ic_search.xml文件

2、把ic_search.xml放到drawale目录下
这里写图片描述

3、配置脚本

根目录的build.gradle脚本

这里写图片描述

模块的build.gradle脚本

这里写图片描述

4、使用矢量图

先build下项目,使得android studio 把vectorDrawable在低版本下生成对应的png图片。

这里写图片描述

build完成后,和普通项目一样使用即可

这里写图片描述


当然 android studio1.4以上也可以自己生成vector,具体步骤如下:

  • 右键res目录创建Vector Asset资源

这里写图片描述

  • 设置Asset Type,选择SVG资源,设置SVG资源大小

这里写图片描述

  • 在drawable目录下生成vector资源文件

这里写图片描述


  • 右键res目录创建Vector Asset资源

这里写图片描述

  • 设置Asset Type,选择SVG资源,设置SVG资源大小

这里写图片描述

  • 在drawable目录下生成vector资源文件

这里写图片描述

### 配置和加载离线 ArcGIS 地图文件 要在 Android Studio 中配置并加载离线 ArcGIS 地图文件,可以按照以下方法操作: #### 1. 添加依赖项 为了支持 ArcGIS 功能,在项目的 `build.gradle` 文件中添加必要的依赖项。如果使用的是较新的版本(如 Kotlin SDK),则需要手动导入 AAR 文件[^3]。 ```gradle repositories { flatDir { dirs 'libs' } } dependencies { implementation(name: 'arcgis-maps-kotlin-200.0.0-beta01', ext: 'aar') } ``` 对于旧版的 ArcGIS Runtime SDK (例如 100.x),可以直接通过 Maven 或本地路径引入相应的库[^1]。 --- #### 2. 加载离线地图数据 ArcGIS 支持多种类型的离线地图文件格式,常见的有 `.tpk`, `.slpk` 和其他自定义打包形式。以下是针对不同文件的具体处理方式: ##### 使用 Tile Package (.tpk) 文件 `.tpk` 是一种瓦片包文件,可以通过 `ArcGISLocalTiledLayer` 类来加载[^2]。 ```java import com.esri.arcgisruntime.layers.ArcGISLocalTiledLayer; // 创建一个新的基于 .tpk 的本地切片层 String tpkPath = "file:///mnt/sdcard/arcgis/base_map.tpk"; ArcGISLocalTiledLayer localTileLayer = new ArcGISLocalTiledLayer(tpkPath); // 将该层添加到 MapView 上 mMapView.getOperationalLayers().add(localTileLayer); ``` --- ##### 使用 Scene Layer Package (.slpk) 文件 对于三维场景中的矢量要素显示,可利用 `.slpk` 文件创建对应的场景图层。 ```java import com.esri.arcgisruntime.data.SceneLayer; import com.esri.arcgisruntime.mapping.ArcGISScene; // 定义 slpk 路径 File scenePackageFile = new File(getExternalFilesDir(null), "example_scene.slpk"); // 构建 SceneLayer 对象 SceneLayer sceneLayer = new SceneLayer(scenePackageFile.toURI()); // 设置至 ArcGISScene 并展示于 SceneView ArcGISScene arcgiSScene = new ArcGISScene(); arcgiSScene.getOperationalLayers().add(sceneLayer); mSceneView.setArcGISScene(arcgiSScene); ``` --- #### 3. 环境准备与调试 确保设备上已安装对应的地图资源文件,并验证存储位置是否正确。通常建议将这些大体积文件存放在外部存储器目录下以便访问。 另外需要注意权限管理问题,尤其是当应用尝试读取 SD 卡或其他共享区域的数据时,需声明相关权限并在运行时请求许可。 ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> ``` --- #### 总结 综上所述,完成上述步骤即可成功在 Android 应用程序中集成离线模式下的 ArcGIS 地图功能。具体实现取决于所使用的地图文件类型以及目标平台的支持情况[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值