拍摄谷歌地图的快照Android返回非法参数异常

时间:2018-06-04 14:47:04

标签: android snapshot

我想在地图上截取某个位置的屏幕截图。我有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的小于或等于零。

任何人都可以帮我解决这个问题吗?感谢。

0 个答案:

没有答案
相关问题