我使用以下代码在屏幕上绘制图像。我想在该图像的顶部绘制一个叠加层。然而,当图像高度较大时,boxfit 会减小图像宽度。发生这种情况时,我无法计算图像顶部和左侧的绘制位置。图像的宽度和高度仍然等于屏幕尺寸,但是图像宽度是居中绘制,两侧有间隙,明显小于屏幕尺寸。
有没有办法计算图像 bixfit 后的准确尺寸和顶部、左侧位置。
return Image.memory(
imageBytes,
width: reqWidth,
height: reqHeight,
filterQuality: FilterQuality.high,
fit: BoxFit.fitHeight,
);
我面临着与您类似的问题,并设法通过
FittedBox
和 Stack
的组合来解决它。 Stack
中 FittedBox
的任何子级都具有相同的坐标空间:
@override
Widget build(BuildContext context) {
return SizedBox.expand(
child: FittedBox(
fit: BoxFit.cover,
child: Stack(
children: [
Image.network('test.jpg'),
Positioned(
top: 100,
left: 100,
child: Container(
color: Colors.amberAccent,
width: 100,
height: 100,
),
),
],
),
),
);
}
容器小部件现在相对于图像定位在应用框适合之后。