我知道如何使用将可见小部件保存到图像中RepaintBoundary
widget我想要的是一种将用户不可见的文件保存为image.
我想在双击图像时启用放大和缩小,同时在捏合时放大/缩小。我看到YouTube上的一些教程,他们实现使用此功能GestureDetector像这一个,但由于某些原因,它并没有为我工作了。为了在捏合时实现缩放,我依赖于这个答案,它确实很好用,但我也想在双击图像时启用放大/缩小。不幸的是,在互联网上寻找这样做的方法,一无所获。
有没有办法同时使用捏合和双击启用放大/缩小InteractiveViewer?
这是我的代码:
@override
Widget build(BuildContext context) {
return Center(
child: InteractiveViewer(
boundaryMargin: EdgeInsets.all(80),
panEnabled: false,
scaleEnabled: true,
minScale: 1.0,
maxScale: 2.2,
child: Image.network("https://pngimg.com/uploads/muffin/muffin_PNG123.png",
fit: BoxFit.fitWidth,
)
),
);
}
Run Code Online (Sandbox Code Playgroud) 我想制作一个可以拖动,缩放和旋转的容器。我能够实现变焦。下面是我的代码:
//variable declaration
double _scale = 1.0;
double _previousScale;
var yOffset = 400.0;
var xOffset = 50.0;
var rotation = 0.0;
var lastRotation = 0.0;
Run Code Online (Sandbox Code Playgroud)
//构建方法
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Center(
child: GestureDetector(
onScaleStart: (scaleDetails) {
_previousScale = _scale;
print(' scaleStarts = ${scaleDetails.focalPoint}');
},
onScaleUpdate: (scaleUpdates){
//ScaleUpdateDetails
rotation += lastRotation - scaleUpdates.rotation;
lastRotation = scaleUpdates.rotation;
print("lastRotation = $lastRotation");
print(' scaleUpdates = ${scaleUpdates.scale} rotation = ${scaleUpdates.rotation}');
setState(() => _scale = _previousScale * scaleUpdates.scale);
},
onScaleEnd: …Run Code Online (Sandbox Code Playgroud)