Flutter 如何使图像的1/3占据全屏
我有一个图像,我想剪切并显示在多个屏幕上。我想要三分之一的图像占据整个屏幕 到目前为止,我可以通过以下方式获得1/3的图像,占据屏幕的1/3:Flutter 如何使图像的1/3占据全屏,flutter,Flutter,我有一个图像,我想剪切并显示在多个屏幕上。我想要三分之一的图像占据整个屏幕 到目前为止,我可以通过以下方式获得1/3的图像,占据屏幕的1/3: Widget buildBGImage(String imageName) { return new Container( decoration: new BoxDecoration(border: new Border.all()), constraints: new BoxConstraints.expand(),
Widget buildBGImage(String imageName) {
return new Container(
decoration: new BoxDecoration(border: new Border.all()),
constraints: new BoxConstraints.expand(),
child: new SizedBox.expand(
child: new ClipRect(
clipper: new WidthClipper(currentPage),
child: new Image.asset(
"assets/images/$imageName",
fit: ImageFit.fill)
)
),
);
}
class WidthClipper扩展了CustomClipper{
int段;
宽度裁剪器(本节);
@凌驾
Rect getClip(大小){
返回新的Rect.fromLTWH(
尺寸宽度*(截面/3),0.0,尺寸宽度/3,尺寸高度);
}
@凌驾
bool shouldReclip(WidthClipper oldClipper)=>true;
}
但是我正在画一张关于如何使1/3占据整个屏幕的图纸。这难道不是一个如何将图像数据整合到全屏
图像中的问题吗?另外,如果原始图像的三分之一的纵横比不适合全屏的纵横比,您希望发生什么
例如,它在全屏纵向模式下显示(大致)横向图像的中心三分之一:
new Image.network(
"https://upload.wikimedia.org/wikipedia/commons/5/5a/Monument_Valley_2.jpg",
fit: ImageFit.fitHeight,
alignment: FractionalOffset.center,
)
而alignment:secretialoffset.centerLeft
和alignment:secretialoffset.centerRight
分别(大致)显示左三分之一和右三分之一。我认为这会起作用。我现在的问题是,在页面视图中使用这种方法在页面之间不是无缝的。@马克,我对颤振也很陌生,所以我也不确定如何继续。。。当你的源图像没有清晰地分割成三分之三,每一个都适合全屏显示时,你会如何处理这种情况?只需使用多于/少于3页?在第一页和最后一页添加左右填充?ImageFit
在该问题和答案出现10天后重命名为BoxFit
new Image.network(
"https://upload.wikimedia.org/wikipedia/commons/5/5a/Monument_Valley_2.jpg",
fit: ImageFit.fitHeight,
alignment: FractionalOffset.center,
)