shootingButton method

Widget shootingButton(
  1. BoxConstraints constraints
)

The shooting button. 拍照按钮

Implementation

Widget shootingButton(BoxConstraints constraints) {
  const Size outerSize = Size.square(115);
  const Size innerSize = Size.square(82);
  return Listener(
    behavior: HitTestBehavior.opaque,
    onPointerUp: onPointerUp,
    onPointerMove: onPointerMove(constraints),
    child: InkWell(
      borderRadius: maxBorderRadius,
      onTap: onTap,
      onLongPress: onLongPress,
      child: SizedBox.fromSize(
        size: outerSize,
        child: Stack(
          children: <Widget>[
            Center(
              child: AnimatedContainer(
                duration: kThemeChangeDuration,
                width: isShootingButtonAnimate
                    ? outerSize.width
                    : innerSize.width,
                height: isShootingButtonAnimate
                    ? outerSize.height
                    : innerSize.height,
                padding: EdgeInsets.all(isShootingButtonAnimate ? 41 : 11),
                decoration: BoxDecoration(
                  color: theme.canvasColor.withOpacity(0.85),
                  shape: BoxShape.circle,
                ),
                child: const DecoratedBox(
                  decoration: BoxDecoration(
                    color: Colors.white,
                    shape: BoxShape.circle,
                  ),
                ),
              ),
            ),
            _initializeWrapper(
              isInitialized: () =>
                  controller.value.isRecordingVideo && isRecordingRestricted,
              builder: (_, __) => CircularProgressBar(
                duration: maximumRecordingDuration!,
                outerRadius: outerSize.width,
                ringsColor: theme.indicatorColor,
                ringsWidth: 2.0,
              ),
            ),
          ],
        ),
      ),
    ),
  );
}