Как сделать снимок экрана и поделиться с ним с помощью флаттера

Можно ли сделать скриншот экрана с помощью пламени и флаттера? Поэтому, когда пользователь нажимает кнопку, он отправляет снимок экрана со всеми, кому он решит поделиться им.

0 ответов

Поскольку вы специально используете flame, вам повезло! Flame отображает вашу игру на холсте. Твоя игра render метод берет холст и рисует рамку вашей игры.

Обычно предоставленным холстом является экран устройства, но вы можете легко вызвать метод рендеринга самостоятельно с другим холстом, например, изображением.

    final PictureRecorder recorder = PictureRecorder();
    final Rect rect = Rect.fromLTWH(0.0, 0.0, game.size.width, game.size.height);
    final Canvas c = Canvas(recorder, rect);

    game.render(c);

    final image = await recorder.endRecording().toImage(game.size.width, game.size.height);

Затем вы можете сохранить это изображение, скажем, в файле или в памяти.

Теперь обратите внимание, что это будет отображать только вашу игру, и будет отображать точный кадр, в котором вы находитесь, когда вы вызываете это. Но я предполагаю, что это то, что вы хотите, поскольку вы специально отметили этот вопрос с помощью flame. В целом, могут быть лучшие способы снимать экран с Flutter, но использование пламени - лучший способ.

Другие вопросы по тегам