shootingButton method
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,
),
),
],
),
),
),
);
}