fl_camera 1.3.1
fl_camera: ^1.3.1 copied to clipboard
A camera plugin for flutter , support Android(used CameraX) and IOS
example/lib/main.dart
import 'dart:async';
import 'dart:io';
import 'package:example/camera_page.dart';
import 'package:example/event_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_waya/flutter_waya.dart';
import 'package:permission_handler/permission_handler.dart';
void main() {
runApp(ExtendedWidgetsApp(home: const App(), title: 'FlCamera'));
}
class App extends StatelessWidget {
const App({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return ExtendedScaffold(
appBar: AppBar(title: const Text('FlCamera Example')),
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedText(
onPressed: () => push(const FlCameraEventPage()),
text: 'Message channel'),
ElevatedText(onPressed: openCamera, text: 'Open the camera'),
ElevatedText(
onPressed: () => push(const ScannerBoxPage()), text: '扫码框浮层'),
ElevatedText(
onPressed: () => push(const ScannerLinePage()), text: '线条浮层')
]);
}
Future<void> openCamera() async {
if (Platform.isAndroid) {
final bool permission = await getPermission(Permission.camera);
if (permission) push(const CameraPage());
} else if (Platform.isIOS) {
push(const CameraPage());
}
}
}
Future<bool> getPermission(Permission permission) async {
PermissionStatus status = await permission.status;
if (status.isGranted) {
return true;
} else {
status = await permission.request();
if (!status.isGranted) openAppSettings();
return status.isGranted;
}
}
Widget showText(dynamic key, dynamic value) {
return Visibility(
visible: value != null &&
value.toString().isNotEmpty &&
value.toString() != 'null',
child: Container(
margin: const EdgeInsets.all(10),
child: Text(key.toString() + ' = ' + value.toString())));
}
class ElevatedText extends StatelessWidget {
const ElevatedText({Key? key, required this.text, required this.onPressed})
: super(key: key);
final String text;
final VoidCallback onPressed;
@override
Widget build(BuildContext context) =>
ElevatedButton(onPressed: onPressed, child: Text(text));
}