我在由Row包裹的列中有三个图像(images.asset),我想使图像的角变圆。我使用了形状,但似乎该形状无效。
我该如何实现?
Row(
children: [
Expanded(
child: Column(
children: <Widget>[
Image.asset(
'assets/cat.jpg',width: 110.0, height: 110.0,
),
shape:Rec
Text(
'Tickets',
style:
TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
)
],
),
),
Expanded(
child: Column(
children: <Widget>[
Image.asset('assets/cat.jpg',width: 110.0, height: 110.0,),
Text(
'Buy Tickets',
style:
TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
)
],
),
),
Expanded(
child: Column(
children: <Widget>[
Image.asset('assets/cat.jpg',width: 110.0, height: 110.0,),
Text(
'Prizes',
style:
TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
)
],
),
),
],
),
预期结果
答案 0 :(得分:2)
使用ClipRRect
ClipRRect(
borderRadius: BorderRadius.circular(16),
child: Image.asset(
'assets/cat.jpg',width: 110.0, height: 110.0,
),
);
答案 1 :(得分:2)
有很多方法可以做到这一点。
(i)。使用CircleAvatar
(推荐)
CircleAvatar(
backgroundImage: AssetImage('assets/cat.jpg'),
radius: 50,
)
(ii)。使用ClipOval
ClipOval(
child: Image.asset(
'assets/cat.jpg',
fit: BoxFit.cover,
),
)
(iii)使用ClipRRect
ClipRRect(
borderRadius: BorderRadius.circular(50),
child: Image.asset(
'assets/cat.jpg',
fit: BoxFit.cover,
),
)
回答第二个问题,如果需要处理任何图像单击,可以将以上任何内容包装在GestureDetector
中并使用onTap
属性。
GestureDetector(
onTap: () {},
child: AnyAboveWidget()
)
答案 2 :(得分:1)
您可以使用ClipRRect enter link to more detail
new ClipRRect(
borderRadius: BorderRadius.only(
topRight: Radius.circular(4.0),
topLeft: Radius.circular(4.0)),
child: Image.asset(
"images/filter_white.png",
color: AppColor.appColor,
height: 20.0,
width: 20.0,
),
)
答案 3 :(得分:1)
像这样覆盖图像小部件。
使用ClipRRect小部件并包含fit:BoxFit.fill,以便您的图像可以扩展到您通过的高度和宽度。
它将为您提供所需的输出,如图中所示。
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/cat.jpg',
width: 110.0,
height: 110.0,
fit: BoxFit.fill,
),
),