1. 程式人生 > 其它 >直播原始碼APP的最佳掃碼外掛,實現自定義檢視

直播原始碼APP的最佳掃碼外掛,實現自定義檢視

直播原始碼APP的最佳掃碼外掛,實現自定義檢視的相關程式碼
實現自定義檢視:

class CustomizedView extends StatefulWidget {
@override
_CustomizedViewState createState() => _CustomizedViewState();
}

const boxSize = 200.0;

class _CustomizedViewState extends State<CustomizedView> {
late ScanKitController _controller;

final screenWidth 
= window.physicalSize.width; final screenHeight = window.physicalSize.height; @override void dispose(){ _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { var pixelSize = boxSize * window.devicePixelRatio; var left = screenWidth/2 - pixelSize/2; var top = screenHeight/2
- pixelSize/2; var right = screenWidth/2 + pixelSize/2; var bottom = screenHeight/2 + pixelSize/2; var rect = Rect.fromLTRB(left, top, right, bottom); return Scaffold( body: SafeArea( child: Stack( children: [ ScanKitWidget( callback: (controller) { _controller = controller; controller.onResult.listen((result) { debugPrint(
"scanning result:$result"); Navigator.of(context).pop(result); }); }, continuouslyScan: false, boundingBox: rect), Align( alignment: Alignment.topCenter, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ IconButton( onPressed: () { Navigator.of(context).pop(); }, icon: Icon( Icons.arrow_back, color: Colors.white, size: 28, )), IconButton( onPressed: () { _controller.switchLight(); }, icon: Icon( Icons.lightbulb_outline_rounded, color: Colors.white, size: 28, )), IconButton( onPressed: () { _controller.pickPhoto(); }, icon: Icon( Icons.picture_in_picture_rounded, color: Colors.white, size: 28, )) ], ), ), Align( alignment: Alignment.center, child: Container( width: boxSize, height: boxSize, decoration: BoxDecoration( border: Border( left: BorderSide(color: Colors.orangeAccent, width: 2), right: BorderSide(color: Colors.orangeAccent, width: 2), top: BorderSide(color: Colors.orangeAccent, width: 2), bottom: BorderSide(color: Colors.orangeAccent, width: 2)), ), ), ) ], ), ), ); } }

拉起自定義檢視:

Future<void> newPage(BuildContext context) async {
var code = await Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) {
return CustomizedView();
}
));

setState(() {
this.code = code ?? "";
});
}

以上就是 直播原始碼APP的最佳掃碼外掛,實現自定義檢視的相關程式碼,更多內容歡迎關注之後的文章