Android开发ArcGIS如何将修改后的图保存
1. 实现的方法代码
在Android开发中,使用ArcGIS进行地图编辑时,我们可以通过以下方法来保存修改后的图像:
```java
private void saveMap() {
Bitmap bitmap getBitmapByView(mMapView);
if (bitmap ! null) {
String imagePath ().getPath() "/map_";
try {
FileOutputStream fos new FileOutputStream(imagePath);
(, 100, fos);
(this, "地图保存成功", Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
();
(this, "保存失败:" (), Toast.LENGTH_SHORT).show();
}
} else {
(this, "获取地图截图失败", Toast.LENGTH_SHORT).show();
}
}
```
2. 实现getBitmapByView的方法代码
为了将ArcGIS地图保存为图片,我们需要先将地图控件转换为Bitmap。下面是一个实现该功能的方法:
```java
private Bitmap getBitmapByView(View view) {
Bitmap bitmap null;
try {
(true);
();
bitmap (());
(false);
} catch (Exception e) {
();
}
return bitmap;
}
```
3. 满足layout生成bitmap,然后bitmap可以再生成图片
为了确保能够将布局转换为Bitmap,我们需要确保布局已经完全绘制出来,并且子视图也已经具备了实际大小。这样才能正确地创建位图并在上面绘制。
4. 检查是否有SD卡
在保存图片前,我们需要检查设备是否有SD卡。如果没有SD卡,则无法保存图片。可以使用以下代码进行检查:
```java
if (().equals(_MOUNTED)) {
// SD卡可用,可以进行保存操作
} else {
// SD卡不可用,无法保存图片
}
```
5. 用例代码
以下是一个保存地图的用例示例代码:
```java
Button btnSaveMap findViewById(_save_map);
(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (().equals(_MOUNTED)) {
saveMap();
} else {
(, "SD卡不可用", Toast.LENGTH_SHORT).show();
}
}
});
```
6. 需要指定View的大小:
在使用`getBitmapByView`方法之前,需要确保地图视图(MapView)已经完成布局,以获得正确的视图大小。
7. 然后View和其内部的子View都具有了实际大小,也就是完成了布局,相当与添加到了界面上。接着就可以创建位图并在上面绘制了:
在调用`getBitmapByView`方法之前,确保地图视图及其内部的子视图已经完成布局并添加到界面上。只有在完成布局后,才能正确地创建位图并在上面绘制。
8. 实现MainActivity的方法代码
以下是MainActivity中实现保存地图功能的方法代码:
```java
public class MainActivity extends AppCompatActivity {
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(_main);
mMapView findViewById(_view);
// 其他代码...
}
private void saveMap() {
// 保存地图的代码...
}
// 其他方法...
}
```
以上是关于Android开发ArcGIS如何将修改后的图保存的内容。通过上述代码和方法,您可以实现将修改过的ArcGIS地图保存为图片,并在需要时加载和使用该图片。这为地图编辑应用程序的开发提供了便利和灵活性。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。