android 图像缩放类型是否在抖动时居中裁剪?

06odsfpq  于 2023-06-04  发布在  Android
关注(0)|答案(5)|浏览(362)

我正在尝试从android ImageView中做一些类似于centerCrop属性的事情。设置imageview的高度,并使其裁剪和对齐到中心,就像centerCrop在android上工作一样。

Widget bindItem(BuildContext context, int index) {
return new Card(
    child: new Column(
        children: <Widget>[
          new Image.network(
            _parties[index]["cover"], fit: BoxFit.fitWidth,
            height: 120.0,
          ),
          new Text(_parties[index]['name'])
        ]
    )
);

}

@override
      Widget build(BuildContext context) {
        return new Scaffold(
            appBar: new AppBar(
              title: new Text("Parties"),
            ),
            body: new ListView.builder(
              itemCount: _parties == null ? 0 : _parties.length,
              itemBuilder: bindItem,
            )
        );
      }

结果:

7d7tgy0s

7d7tgy0s1#

Android ScaleType和BoxFit应该像这样匹配:
1.中心=无

  1. CENTER_CROP =盖
  2. CENTER_INSIDE =缩小
  3. FIT_CENTER = contain(alignment.center)
  4. FIT_END = contain(alignment.bottomright)
  5. FIT_START = contain(alignment.topleft)
  6. FIT_XY =填充

例:-Image.asset('assets/images/your_image.png',fit: BoxFit.fill)

因此,您应该使用Cover来实现CENTER_CROP结果。
编辑:
问题应该是Column小部件的crossAxisAlignment。将此属性设置为crossAxisAlignment: CrossAxisAlignment.stretch应该可以解决您的问题。

vsmadaxz

vsmadaxz2#

new Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        mainAxisSize: MainAxisSize.max,
        children: <Widget>[
        new Expanded(child: new Image.network(
            cover.img,fit: BoxFit.fitWidth,
        ),

        ),
        Text(cover.name),
      ]
    )

这对我很有效

im9ewurl

im9ewurl3#

new Center(
                  child: Container(
                    child: new Stack(
                      children: <Widget>[
                        new Image.asset(
                          'assets/images/firebase1.png',
                          width: 100.0,
                          height: 100.0,
                        ),
                      ],
                    ),
                  ),
                ),
ds97pgxw

ds97pgxw4#

请将以下宽度和高度添加到图像中
注意:我们正在缩放图像

height: double.infinity, 
width: double.infinity,`
lxkprmvk

lxkprmvk5#

如果你想用一个图片填充父控件,你应该使用(正如Antonino已经指出的)BoxFit.cover以及infinity的宽度和高度来占用父视图的空间。

Image.network(
  imageUrl,
  fit: BoxFit.cover,
  width: double.infinity,
  height: double.infinity,
),

相关问题