android高德地图截屏,地图截图功能
使用場景
對MapView以及其上的子view進行截圖。
當用戶在地圖上繪制了標注點、覆蓋物、信息窗口等數據時,利用該截屏功能可以實現包含地圖和繪制數據的完整效果的截屏。
用到產品
核心類/接口
類接口說明版本
AMapSearchAPI- (UIImage *)takeSnapshotInRect:(CGRect)rect;在指定區域內截圖(默認會包含該區域內的annotationView)V4.0.0版本起
核心難點
實現截圖:
- (void)captureAction
{
// 獲取mapView截圖
UIImage *mapImage = [self.mapView takeSnapshotInRect:self.mapView.bounds];
// 對resultView進行截圖
CGSize s = self.resultView.bounds.size;
UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);
[self.resultView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// union image
CGSize imageSize = self.mapView.bounds.size;
UIGraphicsBeginImageContextWithOptions(imageSize, NO, [UIScreen mainScreen].scale);
[mapImage drawInRect:self.mapView.bounds];
[resultImage drawInRect:self.resultView.frame];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// show the image
[self transitionToDetailWithImage:image];
}
func captureAction() {
// map image
let mapImage = self.mapView.takeSnapshot(in: self.mapView.bounds)
// result image
let s = self.resultView.bounds.size
UIGraphicsBeginImageContextWithOptions(s, false, UIScreen.main.scale)
self.resultView.layer.render(in: UIGraphicsGetCurrentContext()!)
let resultImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
// union image
let imageSize = self.mapView.bounds.size
UIGraphicsBeginImageContextWithOptions(imageSize, false, UIScreen.main.scale)
mapImage?.draw(in: self.mapView.bounds)
resultImage.draw(in: self.resultView.frame)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
self.transitionToDetail(with: image)
}
總結
以上是生活随笔為你收集整理的android高德地图截屏,地图截图功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 四大组件之 Activi
- 下一篇: react学习(24)---执行不了接口