Android高德地图截屏功能(可包含自定义控件)

一、不包含自定义控件

地图 SDK 支持对当前屏幕显示区域进行截屏,可以对地图、覆盖物(包含信息窗口)、Logo进行截取屏幕,这其中不包括地图控件、Toast窗口。

详细示例如下:

 // 对地图进行截屏aMap!!.getMapScreenShot(object : OnMapScreenShotListener {override fun onMapScreenShot(bitmap: Bitmap) {}override fun onMapScreenShot(bitmap: Bitmap, status: Int) {try {val fos = FileOutputStream((Environment.getExternalStorageDirectory().toString() + "/test_1") + ".png")val b = bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos)try {fos.flush()} catch (e: IOException) {e.printStackTrace()}try {fos.close()} catch (e: IOException) {e.printStackTrace()}val buffer = StringBuffer()if (b) buffer.append("截屏成功 ") else {buffer.append("截屏失败 ")}if (status != 0) buffer.append("地图渲染完成,截屏无网格") else {buffer.append("地图未渲染完成,截屏有网格")}ToastUtil.showShortToast(buffer.toString())} catch (e: FileNotFoundException) {e.printStackTrace()}}})

二、包含自定义控件

object ScreenShotHelper {/*** 组装地图截图和其他View截图,并且将截图存储在本地sdcard,需要注意的是目前提供的方法限定为MapView与其他View在同一个ViewGroup下** @param bitmap        地图截图回调返回的结果* @param viewContainer MapView和其他要截图的View所在的父容器ViewGroup* @param mapView       MapView控件* @param views         其他想要在截图中显示的控件*/fun saveScreenShot(bitmap: Bitmap,viewContainer: ViewGroup,mapView: MapView,vararg views: View?) {object : Thread() {override fun run() {val screenShotBitmap =getMapAndViewScreenShot(bitmap, viewContainer, mapView, *views)if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {val file =File(Environment.getExternalStorageDirectory().absolutePath + File.separator + "test1.png")try {val outputStream = FileOutputStream(file)screenShotBitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream)//根据自己需求,如果外边对bitmp还有别的需求就不要recycle的screenShotBitmap.recycle()bitmap.recycle()} catch (e: FileNotFoundException) {e.printStackTrace()}}}}.start()}/*** 组装地图截图和其他View截图,需要注意的是目前提供的方法限定为MapView与其他View在同一个ViewGroup下** @param bitmap        地图截图回调返回的结果* @param viewContainer MapView和其他要截图的View所在的父容器ViewGroup* @param mapView       MapView控件* @param views         其他想要在截图中显示的控件*/fun getMapAndViewScreenShot(bitmap: Bitmap?,viewContainer: ViewGroup,mapView: MapView,vararg views: View?): Bitmap {val width = viewContainer.widthval height = viewContainer.heightval screenBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)val canvas = Canvas(screenBitmap)canvas.drawBitmap(bitmap!!, mapView.left.toFloat(), mapView.top.toFloat(), null)for (view in views) {view!!.isDrawingCacheEnabled = truecanvas.drawBitmap(view.drawingCache, view.left.toFloat(), view.top.toFloat(), null)}return screenBitmap}
}
使用方式
  aMap!!.getMapScreenShot(object : OnMapScreenShotListener {override fun onMapScreenShot(bitmap: Bitmap) {}override fun onMapScreenShot(bitmap: Bitmap, status: Int) {ScreenShotHelper.saveScreenShot(bitmap, 根布局, v!!.routeMapView, 要显示的控件)}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正交试验设计法

正交实验设计 一、什么是正交试验设计法? 是一种成对测试交互的系统的统计方法。它提供了一种能对所有变量对的组合进行典型覆盖(均匀分布)的方法。 可以从大量的试验点中挑出适量的、有代表性的点,利用“正交表”,…

Python之数据库(MYSQL)连接

一)数据库SQL语言基础 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database…

Java——》JVM对原生的锁做了哪些优化

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、地理可视化...

全文下载链接:http://tecdat.cn/?p29480 作者:Xingsheng Yang 1 利用 python 爬取链家网公开的租房数据; 2 对租房信息进行分析,主要对房租相关特征进行分析,并搭建模型用于预测房租(点击文末“阅读原文”获取完整代码…

【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(下)

前言 在上一篇我们主要介绍了有关计算机网络概述的内容,下面这一篇我们将来介绍有关计算机网络体系结构与参考模型的内容。这一篇博客紧紧联系上一篇博客。 这一篇博客主要内容是:计算机网络体系结构与参考模型,主要是计算机网络分层结构、协…

Swift如何使用Vision来识别获取图片中的文字(OCR),通过SwiftUI视图和终端命令行,以及一系列注意事项

在过去的一年里,我发现苹果系统中的“文字搜图片”功能非常好用,这个功能不光 iPhone/iPad,Mac 也有,找一些图片真的很好用。但是遇到了一个问题:这个功能需要一段时间才能找到新的图片,而且没法手动刷新&a…

STM32-HAL库07-软件SPI驱动0.96寸OLED

STM32-HAL库07-软件SPI驱动0.96寸OLED 一、所用材料: STM32VGT6自制控制板 STM32CUBEMX(HAL库软件) MDK5 二、所学内容: 通过HAL库配置四个GPIO输出口,对其进行软件模拟SPI发送规则,进而驱动OLED进行数…

C++ 引用

C 引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。 C 引用 vs 指针 引用很容易与指针混淆,它们之间有三个主要的不同:…

Pytorch02 神经网路搭建步骤

文章目录 import numpy as np import torch from PIL.Image import Image from torch.autograd import Variable# 获取数据 def get_data():train_Xnp.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,7.042,10.791,5.313,7.997,5.654,9.27,3.1])train_Ynp.asarr…

【已解决】Splunk 8.2.X 升级ES 后红色报警

1: 背景: 由于splunk ES 占有很大的computing resource, 所以,Splunk ES 升级到7.1.1 后,有红色的alert. 2: 解决方法: 降低iowait 的 threshold: Investigation The default threshold setting for IOWait is pre-set to a low value and may not be relevant to the …

火山引擎边缘云助力智能科技赋予生活更多新意

当下,先进的科学技术使得我们的日常生活变得快捷、舒适。大到上百层智能大厦、高端公共场所、社会智能基础设施,小到智能家居监控、指纹密码锁等,在这个充满想象力的时代,科技以更加智能化的方式改变和守护我们的生活。 引入智能…

IO和进程day05(进程与线程)

今日任务 1.代码 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <sys/wait.h> #include <pthread.h>…

Oracle中instr,rtrim,XMLPARSE,XMLAGG,GETCLOBVAL函数的使用

1&#xff1a;INSTR()函数 INSTR 是一个字符串函数&#xff0c;用于查找子字符串在源字符串中的位置。 它的语法如下&#xff1a; INSTR(source_string, search_string)source_string 是源字符串&#xff0c;即要在其中进行搜索的字符串。search_string 是要查找的子字符串。…

基于springboot2+mybatis-plus+jsp增删改查

概述 编写简单增删改查&#xff0c;理解之后可以自己试着扩展&#xff0c;相信你也可以&#xff0c;加油&#xff0c;我自己懂了的用注释记在下面方便理解 详细 一、需求&#xff08;要做什么&#xff09; 基于现今最流行的技术实现增删改查demo&#xff0c; 便于初学者上手…

2020年12月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;字符三角形 描述 给定一个字符&#xff0c;用它构造一个底边长5个字符&#xff0c;高3个字符的等腰字符三角形。 输入 输入只有一行&#xff0c; 包含一个字符。 输出 该字符构成的等腰三角形&#xff…

C#学习 - 类型、变量、方法

类型&#xff08;Type&#xff09; 又称为数据类型&#xff08;Data Type&#xff09; 数据类型是数据在内存中存储时的“型号” 小内存容纳大尺寸数据会丢失精确度、发生错误 大内存容纳小尺寸数据会导致浪费 编程语言的数据类型与数学中的数据类型不完全相同 编程时数据受到…

nuxt3项目使用pdfjs-dist预览pdf

使用的包的源代码是 pdfjs - npm 但是我们实际上项目中使用的是pdfjs打包后的dist文件&#xff0c;也就是pdfjs-dist - npm 所以我们需要使用这个命令 npm i pdfjs-dist 我们可以克隆pdfjs这个包来看源代码&#xff0c;里面有使用的例子&#xff0c;也可以根据源代码自己打…

康冠2024届秋招校招面试软件开发岗问的问题

1.自我介绍 2.谈谈你的技术栈 3.我主要使用C#因此面试官问我了解Java怎么样 4.聊项目&#xff0c;例如开发过程中的问题 5.制作完项目的感受 6.为什么你会使用这些技术栈做项目 7.是否会把老项目翻盘重做 8.考公还是考研 9.期待的工作地点

bert ranking pairwise demo

下面是用bert 训练pairwise rank 的 demo import torch from torch.utils.data import DataLoader, Dataset from transformers import BertModel, BertTokenizer from sklearn.metrics import pairwise_distances_argmin_minclass PairwiseRankingDataset(Dataset):def __ini…

ClickHouse进阶(十三):Clickhouse数据字典-3-文件数据源及Mysql数据源

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…