我想构建一个可以拍摄横向和纵向照片的屏幕。我的应用程序仅通过在 main 中调用以下命令以纵向模式运行:
等待 SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
由于我的屏幕不再旋转,即使我将手机倾斜到一边,图像也始终以纵向拍摄。这是一个小示例项目,您可以清楚地看到它:
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'package:flutter/services.dart';
List<CameraDescription> cameras = [];
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
cameras = await availableCameras();
runApp(CameraApp());
}
class CameraApp extends StatefulWidget {
@override
_CameraAppState createState() => _CameraAppState();
}
class _CameraAppState extends State<CameraApp> {
CameraController? controller;
bool takingPicture = false;
XFile? selectedImage;
@override
void initState() {
super.initState();
controller = CameraController(cameras[0], ResolutionPreset.max);
controller!.initialize().then((_) {
if (!mounted) {
return;
}
setState(() {});
});
}
@override
void dispose() …Run Code Online (Sandbox Code Playgroud)