首页 / 浏览问题 / 移动GIS / 问题详情
移动端截取图片
8EXP 2023年03月10日

使用mapControl.outputMap方法无法截图 当执行方法mapControl.outputMap(bgBitmap); 报Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference

Bitmap bgBitmap=Bitmap.createBitmap(mapView.getMapControl().getMapWidth(),mapView.getMapControl().getHeight(), Bitmap.Config.ARGB_8888); mapControl.outputMap(bgBitmap);

File file = new File(SDHelper.getSDCardPath() + "test.jpg");

FileOutputStream out = new FileOutputStream(file);

bgBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);

out.flush();

out.close();

1个回答

您好,根据提示“android.graphics.Bitmap.getWidth()' on a null object reference”建议您打印一下map,看看map是否为null

3,415EXP 2023年03月10日

map不为null

您好,这边使用了11.0.0版本的imobile没有出现该错误,麻烦告诉我您那边使用的imibile版本号并发送一个能复现的demo到邮箱1426221195@qq.com,
已经解决了是MapView控件设置了layout_marginTop属性导致的去除layout_marginTop就可以了,谢谢!!!
mapview继承RelativeLayout,RelativeLayout 布局的控件是默认汇集在左上角的,当指定的layout_marginBottom 的值远小于父控件默认的距离时,控件会按照默认取值,即0,此时mapview生成的bitmap获取不到尺寸就会导致此错误的发生
...