我想在地图上截取某个位置的屏幕截图。我有lat和long值并完成了设置,在onMapReadyCallback
中,我编写了这段代码来获取屏幕截图:
@Override
public void onMapReady(GoogleMap googleMap) {
mGmap = googleMap;
GoogleMap.SnapshotReadyCallback snapshotReadyCallback = new GoogleMap.SnapshotReadyCallback() {
@Override
public void onSnapshotReady(Bitmap bitmap) {
locnImg = bitmap;
Log.d(TAG, "Snapshot Ready");
}
};
mGmap.snapshot(snapshotReadyCallback);
Log.d(TAG, "Snapshot Taken");
mGmap.getUiSettings().setMyLocationButtonEnabled(true);
mGmap.getUiSettings().setZoomGesturesEnabled(true);
mGmap.getUiSettings().setZoomControlsEnabled(true);
View mapBtn = (View) ((View) mapFragment.getView().findViewById(Integer.parseInt("1")).getParent()).findViewById(Integer.parseInt("2"));
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mapBtn.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
params.setMargins(0, 0, 30, 30);
}
但不断收到此错误:
E / AndroidRuntime:致命异常:androidmapsapi-Snapshot 过程:com.jjoey.transportr,PID:19374 java.lang.IllegalArgumentException:width和height必须是> 0 在android.graphics.Bitmap.createBitmap(Bitmap.java:810) 在android.graphics.Bitmap.createBitmap(Bitmap.java:789) 在android.graphics.Bitmap.createBitmap(Bitmap.java:756) 在com.google.maps.api.android.lib6.impl.ed.b(:com.google.android.gms.dynamite_dynamitemodulesb @ 12685009 @ 12.6.85 (020308-197041431):4) 在com.google.maps.api.android.lib6.impl.bf.run(:com.google.android.gms.dynamite_dynamitemodulesb @ 12685009 @ 12.6.85 (020308-197041431):4) 在java.lang.Thread.run(Thread.java:818)
在我的日志中,它显示截图已被拍摄以及我是什么
了解错误的是图像位图的高度和宽度
来自snapshotReadyCallback
的小于或等于零。
任何人都可以帮我解决这个问题吗?感谢。