@Override public void getSnapshot(final OnSnapshotReadyListener listener) { getGoogleMap().snapshot(new GoogleMap.SnapshotReadyCallback() { @Override public void onSnapshotReady(Bitmap bitmap) { listener.onSnapshotReady(bitmap); } }); }
@Override public void onMapLoaded() { mMap.snapshot(callback); } });
@Override public void onMapReady(GoogleMap googleMap) { googleMap.snapshot(new GoogleMap.SnapshotReadyCallback() { @Override public void onSnapshotReady(Bitmap snapshot) { int[] location = new int[2]; mapView.getLocationOnScreen(location); Bitmap bmOverlay = mergeBitmaps(originalBitmap, snapshot, location); bitmapProcessorListener.onBitmapReady(bmOverlay); } }); } });
private void takeSnapshot() { if (mMap == null) { return; } final ImageView snapshotHolder = (ImageView) findViewById(R.id.snapshot_holder); final SnapshotReadyCallback callback = new SnapshotReadyCallback() { @Override public void onSnapshotReady(Bitmap snapshot) { // Callback is called from the main thread, so we can modify the ImageView safely. snapshotHolder.setImageBitmap(snapshot); } }; if (mWaitForMapLoadCheckBox.isChecked()) { mMap.setOnMapLoadedCallback(new OnMapLoadedCallback() { @Override public void onMapLoaded() { mMap.snapshot(callback); } }); } else { mMap.snapshot(callback); } }
@Override public void snapshot(SnapshotReadyCallback callback, Bitmap bitmap) { map.snapshot(callback, bitmap); }
@Override public void call() { googleMap.snapshot(null); } }));
@Override public void snapshot(SnapshotReadyCallback callback) { map.snapshot(callback); }
@Override public void call(final Subscriber<? super Bitmap> subscriber) { GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() { @Override public void onSnapshotReady(Bitmap bitmap) { if (!subscriber.isUnsubscribed()) { subscriber.onNext(bitmap); } } }; // Even the bitmap was uninitialized, it behaves like snapshot(SnapshotReadyCallback). googleMap.snapshot(callback, bitmap); subscriber.add(Subscriptions.create(new Action0() { @Override public void call() { googleMap.snapshot(null); } })); } }
@Override public void onMapReady(final GoogleMap googleMap) { googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds( mapLatLngBounds, MapsUtil.calculateWidth(getWindowManager()), MapsUtil.calculateHeight(getWindowManager(), getResources().getDimensionPixelSize(R.dimen.map_margin_bottom)), 150)); googleMap.setOnMapLoadedCallback(() -> googleMap.snapshot(presenter::saveBitmap)); }
@Test public void shouldProvideBitmap() throws Exception { TestSubscriber<Bitmap> testSubscriber = new TestSubscriber<>(); new BitmapSnapshotFunc(null).call(googleMap) .subscribe(testSubscriber); verify(googleMap).snapshot(argumentCaptor.capture(), bitmapArgumentCaptor.capture()); argumentCaptor.getValue().onSnapshotReady(null); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); testSubscriber.assertValue(null); }
@Test public void shouldProvideBitmap() throws Exception { TestSubscriber<Bitmap> testSubscriber = new TestSubscriber<>(); new SnapshotFunc().call(googleMap) .subscribe(testSubscriber); verify(googleMap).snapshot(argumentCaptor.capture()); argumentCaptor.getValue().onSnapshotReady(null); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); testSubscriber.assertValue(null); }