Flutter设备预览截图插件device_preview_shot的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter设备预览截图插件device_preview_shot的使用

Device Preview for Flutter

pub package docs MIT License style: flutter_lints

这是一个用于保持与新版本Flutter兼容的device_preview的分支。

对于从device_preview_plus包迁移过来的用户,只需要更改pubspec.yaml文件以指向device_preview_shot,并将任何导入语句更改为更新后的\device_preview_shot.dart

Device Preview for Flutter

在另一个设备上预览你的应用的外观和性能。主要功能包括:

  • 从任何设备预览任何设备
  • 改变设备方向
  • 动态系统配置(语言、深色模式、文本缩放因子等)
  • 自由格式设备,可调整分辨率和安全区域
  • 保持应用程序状态
  • 插件系统(截图、文件浏览器等)
  • 可自定义的插件

开始使用

将以下内容添加到项目的pubspec.yaml文件中:

dependencies:
  device_preview_shot: ^2.1.5

使用方法

将您的应用的根部件包装在一个DevicePreview中,并确保:

  • 设置您的应用的useInheritedMediaQuerytrue
  • 设置您的应用的builderDevicePreview.appBuilder
  • 设置您的应用的localeDevicePreview.locale(context)

确保按上述方式覆盖这些属性。如果未定义,MediaQuery不会为所选设备模拟。

import '/device_preview_shot.dart';

void main() => runApp(
  DevicePreview(
    enabled: !kReleaseMode,
    builder: (context) => MyApp(), // 包裹你的应用
  ),
);

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      useInheritedMediaQuery: true,
      locale: DevicePreview.locale(context),
      builder: DevicePreview.appBuilder,
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      home: const HomePage(),
    );
  }
}

示例

以下是一个简单的示例,展示了如何使用device_preview_shot插件。

import 'package:device_preview_shot/device_preview_shot.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

import 'basic.dart';
import 'custom_plugin.dart';

void main() {
  runApp(
    DevicePreviewShot(
      enabled: true,
      tools: const [
        ...DevicePreviewShot.defaultTools,
        CustomPlugin(),
      ],
      builder: (context) => const BasicApp(),
    ),
  );
}

// 基本应用类
class BasicApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Basic App')),
      body: Center(
        child: Text('Hello, World!'),
      ),
    );
  }
}

// 自定义插件类
class CustomPlugin extends StatelessWidget implements DevicePreviewShot.Plugin {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container();
  }

  [@override](/user/override)
  String get name => 'Custom Plugin';

  [@override](/user/override)
  Widget buildToolbarButton(BuildContext context) {
    return IconButton(
      icon: Icon(Icons.add),
      onPressed: () {},
    );
  }
}

更多关于Flutter设备预览截图插件device_preview_shot的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter设备预览截图插件device_preview_shot的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,关于如何在Flutter项目中使用device_preview_shot插件来生成设备预览截图,下面是一个详细的代码案例。device_preview_shot是一个方便的工具,它结合了device_preview和截图功能,用于在Flutter应用中生成多种设备预览截图。

首先,确保你已经在pubspec.yaml文件中添加了device_preview_shot依赖:

dependencies:
  flutter:
    sdk: flutter
  device_preview_shot: ^最新版本号  # 请替换为实际的最新版本号

然后,运行flutter pub get来安装依赖。

接下来,配置你的Flutter项目以使用device_preview_shot。这里是一个基本的示例,展示了如何生成设备预览截图。

  1. 创建截图脚本

在你的项目根目录下创建一个名为capture_screenshots.dart的脚本文件。这个脚本将使用device_preview_shot来生成截图。

import 'package:device_preview_shot/device_preview_shot.dart';
import 'package:flutter/material.dart';
import 'your_main_app.dart' as yourApp; // 导入你的主应用文件

void main(List<String> arguments) async {
  // 配置设备预览截图插件
  final shotter = DevicePreviewShotter(
    builder: (context) => MaterialApp(
      home: yourApp.MyApp(), // 使用你的主应用小部件
    ),
    framework: 'flutter_web', // 根据需要选择 'flutter', 'flutter_web', 'flutter_driver'
    devices: [
      // 配置你想要截图的设备列表
      Device('iPhone 11'),
      Device('Pixel 4 XL'),
      // 添加更多设备...
    ],
    locale: 'en_US', // 设置语言
    platform: TargetPlatform.android, // 设置平台,可以是ios或android
    orientation: DeviceOrientation.portrait, // 设置方向
    themes: [
      // 配置主题(可选)
      ThemeData(
        primarySwatch: Colors.blue,
      ),
      // 添加更多主题...
    ],
  );

  // 生成截图
  await shotter.captureAll();
}

确保将your_main_app.dart替换为你的主应用文件路径,并导入它。

  1. 运行截图脚本

在终端中,导航到你的项目根目录,然后运行以下命令来执行截图脚本:

dart capture_screenshots.dart

这个命令将会生成配置中指定的所有设备的截图,并将它们保存到项目的screenshots文件夹中(默认情况下)。

  1. 检查截图

截图生成后,你可以在项目的screenshots文件夹中找到它们。你可以根据需要将这些截图用于应用商店、文档或任何其他用途。

注意:根据你的项目配置和需求,可能需要对脚本进行一些调整,比如设置不同的设备、主题、语言或方向。

这个示例展示了如何使用device_preview_shot插件来自动化生成Flutter应用的设备预览截图。希望这对你有帮助!

回到顶部