我正在使用Flutter列出有关电影的信息。现在,我希望左侧的封面图像是圆角图片。我做了以下工作,但是没有用。谢谢!
getItem(var subject) {
var row = Container(
margin: EdgeInsets.all(8.0),
child: Row(
children: <Widget>[
Container(
width: 100.0,
height: 150.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(8.0)),
color: Colors.redAccent,
),
child: Image.network(
subject['images']['large'],
height: 150.0,
width: 100.0,
),
),
],
),
);
return Card(
color: Colors.blueGrey,
child: row,
);
}
如下
答案 0 :(得分:87)
使用ClipRRect
可以完美运行
new ClipRRect(
borderRadius: new BorderRadius.circular(8.0),
child: Image.network(
subject['images']['large'],
height: 150.0,
width: 100.0,
),
)
答案 1 :(得分:8)
使用WITH cteColumns AS (
SELECT c.name AS ColName, t.name AS TableName, s.name AS SchemaName
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
JOIN sys.schemas s on t.schema_id = s.schema_id
WHERE c.name LIKE '%columnnID%'
)
SELECT 'SELECT * FROM '
+ QUOTENAME(c.SchemaName) + '.' + QUOTENAME(c.TableName)
+ ' WHERE ' + QUOTENAME(c.ColName) + ' = 11074'
FROM cteColumns c;
需要对ClipRRect
进行硬编码,因此,如果需要完整的循环填充,请改用BorderRadius
。
ClipOval
答案 2 :(得分:5)
您还可以使用CircleAvatar
,它随颤动一起提供
CircleAvatar(
radius: 20,
backgroundImage: NetworkImage('https://via.placeholder.com/140x100')
)
答案 3 :(得分:5)
对于新版的Flutter和Material主题,您也需要使用“ Padding”小部件,以使图像无法填充其容器。
例如,如果您想在AppBar中插入圆形图像,则必须使用填充,否则您的图像将始终与AppBar一样高。
希望这会对某人有所帮助
InkWell(
onTap: () {
print ('Click Profile Pic');
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: ClipOval(
child: Image.asset(
'assets/images/profile1.jpg',
),
),
),
),
答案 4 :(得分:3)
使用ClipRRect,并将其图像属性设置为fit:BoxFit.fill
ClipRRect(
borderRadius: new BorderRadius.circular(10.0),
child: Image(
fit: BoxFit.fill,
image: AssetImage('images/image.png'),
width: 100.0,
height: 100.0,
),
),
答案 5 :(得分:3)
这是我用过的代码。
Container(
width: 200.0,
height: 200.0,
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage('Network_Image_Link')),
color: Colors.blue,
borderRadius: BorderRadius.all(Radius.circular(25.0)),
),
),
谢谢!!!
答案 6 :(得分:2)
// Set SS pin low to activate
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
// Read Temp
if(HAL_SPI_TransmitReceive(&hspi2, (uint8_t*)&master_buffer_tx[4], (uint8_t*)&master_buffer_rx[4], 1, 1000)!=HAL_OK){
Error_Handler();
}
// Check finished
while(HAL_SPI_GetState(&hspi2) != HAL_SPI_STATE_READY){
}
// Set SS pin high to deactivate
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
HAL_Delay(10);
答案 7 :(得分:2)
使用ClipRRect,它将解决您的问题。
ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
child: Image.network(
Constant.SERVER_LINK + model.userProfilePic,
fit: BoxFit.cover,
),
),
答案 8 :(得分:1)
尝试这种方式
Container(
width: 100.0,
height: 150.0,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage('Path to your image')
),
borderRadius: BorderRadius.all(Radius.circular(8.0)),
color: Colors.redAccent,
),
答案 9 :(得分:1)
尝试一下,效果很好。
Container(
height: 220.0,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: new BorderRadius.only(
topLeft: Radius.circular(10),
topRight: Radius.circular(10),
),
image: DecorationImage(
fit: BoxFit.fill,
image: NetworkImage(
photoUrl,
),
),
),
);
答案 10 :(得分:1)
用户装饰容器的图像。
@override
Widget build(BuildContext context) {
final alucard = Container(
decoration: new BoxDecoration(
borderRadius: BorderRadius.circular(10),
image: new DecorationImage(
image: new AssetImage("images/logo.png"),
fit: BoxFit.fill,
)
)
);
答案 11 :(得分:1)
输出:
使用BoxDecoration
Container(
margin: EdgeInsets.all(8),
width: 86,
height: 86,
decoration: BoxDecoration(
shape: BoxShape.circle,
image: DecorationImage(
image: NetworkImage('https://i.stack.imgur.com/0VpX0.png'),
fit: BoxFit.cover
),
),
),
答案 12 :(得分:0)
使用图片
ClipOval(
child: Image.network(
'https://url to your image',
fit: BoxFit.fill,
),
);
在使用“资产图片”时使用此
ClipOval(
child: Image.asset(
'Path to your image',
fit: BoxFit.cover,
),
)
答案 13 :(得分:0)
在此圆圈图像中使用这种方式也可以使用+您还为网络图像提供了预加载器:
new ClipRRect(
borderRadius: new BorderRadius.circular(30.0),
child: FadeInImage.assetNetwork(
placeholder:'asset/loader.gif',
image: 'Your Image Path',
),
)
答案 14 :(得分:0)
您可以像这样使用ClipRRect:
Padding(
padding: const EdgeInsets.all(8.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(25),
child: Image.asset(
'assets/images/pic13.jpeg',
fit: BoxFit.cover,
),
),
)
您可以设置半径,或者只为topLeft或left bottom设置用户,例如:
Padding(
padding: const EdgeInsets.all(8.0),
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(25)
,bottomLeft: Radius.circular(25)),
child: Image.asset(
'assets/images/pic13.jpeg',
fit: BoxFit.cover,
),
),
)
答案 15 :(得分:0)
您可以将CircleAvatar窗口小部件的半径设置为:
CircleAvatar(
radius: 50.0,
backgroundImage: AssetImage("assets/img1.jpeg"),
),