小编ale*_*eek的帖子

Flutter - 当用户移动到其他(预览)屏幕时如何正确暂停相机?

当我移动到导航树上的另一个屏幕时,我需要暂停相机以节省电池和性能。

我尝试使用dispose()cameraController,但是当它从另一个屏幕返回时,flutter 不会重新初始化状态(虽然很明显)。

我使用相机的主要代码:

 @override
  void initState() {
    super.initState();
    availableCameras().then((cameras) {
      setState(() {
        _firstCamera = cameras.first;
        _controller = CameraController(_firstCamera, ResolutionPreset.high);

        _initializeControllerFuture = _controller.initialize();
      });
    });
  }

  @override
  void dispose() {
    _controller?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      body: Stack(
        children: <Widget>[
          FutureBuilder<void>(
            future: _initializeControllerFuture,
            builder: (context, snapshot) {

              if (snapshot.connectionState == ConnectionState.done) {
                return Stack(
                  alignment: FractionalOffset.center,
                  children: <Widget>[
                    new Positioned.fill(
                      child: _getCameraPreview(context),
                    ),
                    ...                    
                  ],
                );
              } else {
                return …
Run Code Online (Sandbox Code Playgroud)

android flutter

6
推荐指数
1
解决办法
3027
查看次数

如何在颤动中圆弧边?

我需要创建一个弧形图如下:

在此处输入图片说明

我使用画布创建了这个:

在此处输入图片说明

我的代码:

class CustomChartPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {

    Rect drawingRect = Rect.fromCircle(center: Offset(size.width / 2, size.height / 2), radius: size.width / 2);


    final Paint paint2 = Paint();
    paint2.color = const Color.fromRGBO(0, 0, 0, 0.04);
    paint2.style = PaintingStyle.stroke;
    paint2.strokeWidth = 50;

    canvas.drawCircle(Offset(size.width / 2, size.height / 2), size.width / 2, paint2);

    canvas.drawArc(drawingRect,
        -pi / 2 + 0.35,
        pi - 0.35,
        false,
        greenPaint);

    canvas.drawArc(drawingRect,
        pi / 2 + 0.35,
        pi - 0.35,
        false,
        orangePaint);
  } …
Run Code Online (Sandbox Code Playgroud)

canvas flutter

4
推荐指数
1
解决办法
370
查看次数

标签 统计

flutter ×2

android ×1

canvas ×1