private void OnSnapshot(TakeSnapshotMessage snapshotMessage) { Task.Run(() => { // Not implemented snapshotMessage?.OnSnapshot?.Invoke(null); }); }
private void OnSnapshot(TakeSnapshotMessage snapshotMessage) { NativeMap.Snapshot(new DelegateSnapshotReadyCallback(snapshot => { var stream = new MemoryStream(); snapshot.Compress(Bitmap.CompressFormat.Png, 0, stream); stream.Position = 0; snapshotMessage?.OnSnapshot?.Invoke(stream); })); }
void OnSnapshot(TakeSnapshotMessage snapshotMessage) { UIGraphics.BeginImageContextWithOptions(NativeMap.Frame.Size, false, 0f); NativeMap.Layer.RenderInContext(UIGraphics.GetCurrentContext()); var snapshot = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); // Why using task? Because Android side is asynchronous. Task.Run(() => { snapshotMessage.OnSnapshot.Invoke(snapshot.AsPNG().AsStream()); }); }
void SendTakeSnapshot(TakeSnapshotMessage message) { OnSnapshot?.Invoke(message); }