1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*
- * QR.Flutter
- * Copyright (c) 2019 the QR.Flutter authors.
- * See LICENSE for distribution and usage details.
- */
- import 'dart:async';
- import 'dart:ui' as ui;
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- // ignore: directives_ordering
- import 'package:fis_lib_qrcode/qr_flutter.dart';
- /// This is the screen that you'll see when the app starts
- class MainScreen extends StatefulWidget {
- @override
- _MainScreenState createState() => _MainScreenState();
- }
- class _MainScreenState extends State<MainScreen> {
- @override
- Widget build(BuildContext context) {
- final message =
- // ignore: lines_longer_than_80_chars
- 'Hey this is a QR code. Change this value in the main_screen.dart file.';
- final qrFutureBuilder = FutureBuilder<ui.Image>(
- future: _loadOverlayImage(),
- builder: (ctx, snapshot) {
- final size = 280.0;
- if (!snapshot.hasData) {
- return Container(width: size, height: size);
- }
- return CustomPaint(
- size: Size.square(size),
- painter: QrPainter(
- data: message,
- version: QrVersions.auto,
- eyeStyle: const QrEyeStyle(
- eyeShape: QrEyeShape.square,
- color: Colors.black,
- ),
- dataModuleStyle: const QrDataModuleStyle(
- dataModuleShape: QrDataModuleShape.circle,
- color: Colors.black,
- ),
- // size: 320.0,
- embeddedImage: snapshot.data,
- embeddedImageStyle: QrEmbeddedImageStyle(
- size: Size.square(60),
- ),
- ),
- );
- },
- );
- return Material(
- color: Colors.white,
- child: SafeArea(
- top: true,
- bottom: true,
- child: Container(
- child: Column(
- children: <Widget>[
- Expanded(
- child: Center(
- child: Container(
- width: 280,
- child: qrFutureBuilder,
- ),
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 20, horizontal: 40)
- .copyWith(bottom: 40),
- child: Text(message),
- ),
- ],
- ),
- ),
- ),
- );
- }
- Future<ui.Image> _loadOverlayImage() async {
- final completer = Completer<ui.Image>();
- final byteData = await rootBundle.load('assets/images/4.0x/flyinsono.png');
- ui.decodeImageFromList(byteData.buffer.asUint8List(), completer.complete);
- return completer.future;
- }
- }
|