我正在看我在startflutter.com上找到的此模板,完整代码可以在下面看到
我尝试将自己的图片插入圆圈,似乎没有办法将图片完全放入框中(它总是被裁剪)
@override
Widget build(BuildContext context) {
final alucard = Hero(
tag: 'hero',
child: Padding(
padding: EdgeInsets.all(16.0),
child: CircleAvatar(
radius: 72.0,
backgroundColor: Colors.transparent,
backgroundImage: AssetImage('assets/alucard.jpg'),
),
),
);
Run Code Online (Sandbox Code Playgroud)
我想像这样在容器中插入图像
@override
Widget build(BuildContext context) {
final alucard = Container(
decoration: new BoxDecoration(
image: new DecorationImage(
image: new AssetImage("images/logo.png"),
fit: BoxFit.fill,
)
)
);
Run Code Online (Sandbox Code Playgroud)
但这是行不通的,不会出现,这是怎么了?
这是整个代码页面...
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
static String tag = 'home-page';
@override
Widget build(BuildContext context) {
final alucard = Hero(
tag: 'hero',
child: Padding(
padding: EdgeInsets.all(16.0),
child: CircleAvatar(
radius: 72.0,
backgroundColor: Colors.transparent,
backgroundImage: AssetImage('assets/alucard.jpg'),
),
),
);
final welcome = Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Welcome Alucard',
style: TextStyle(fontSize: 28.0, color: Colors.white),
),
);
final lorem = Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit condimentum mauris id ',
style: TextStyle(fontSize: 16.0, color: Colors.white),
),
);
final body = Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.all(28.0),
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
Colors.blue,
Colors.lightBlueAccent,
]),
),
child: Column(
children: <Widget>[alucard, welcome, lorem],
),
);
return Scaffold(
body: body,
);
}
}
Run Code Online (Sandbox Code Playgroud)
Zul*_*qar 12
更换容器可以正常工作
new Container(
height: 120.0,
width: 120.0,
decoration: new BoxDecoration(
image: DecorationImage(
image: new AssetImage(
'assets/assets/alucard.jpg'),
fit: BoxFit.fill,
),
shape: BoxShape.circle,
),
)
Run Code Online (Sandbox Code Playgroud)
F-1*_*F-1 10
尝试这个
new Container(
width: 100.00,
height: 100.00,
decoration: new BoxDecoration(
image: new DecorationImage(
image: ExactAssetImage('assets/example.png'),
fit: BoxFit.fitHeight,
),
));
Run Code Online (Sandbox Code Playgroud)
通过编辑 pubspec.yaml 文件https://docs.flutter.io/flutter/painting/ExactAssetImage-class.html确保您告诉 flutter 您的资产文件夹的位置
可以将图像添加到容器中 - [your_image_folder_path/image_name]
Container(
child: Image(image: AssetImage("images/logo.png")))
Run Code Online (Sandbox Code Playgroud)
传递BoxFit.fill给你Image.asset应该做的。
尝试这个;
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
static String tag = 'home-page';
@override
Widget build(BuildContext context) {
final alucard = Hero(
tag: 'hero',
child: Padding(
padding: EdgeInsets.all(16.0),
child: new Container(
height: 80.0,
width: 80.0,
decoration: new BoxDecoration(
image: DecorationImage(
image: new AssetImage(
'assets/alucard.jpg'),
fit: BoxFit.fill,
),
borderRadius:
BorderRadius.circular(80.0),
),
),
),
);
final welcome = Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Welcome Alucard',
style: TextStyle(fontSize: 28.0, color: Colors.white),
),
);
final lorem = Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit condimentum mauris id ',
style: TextStyle(fontSize: 16.0, color: Colors.white),
),
);
final body = Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.all(28.0),
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
Colors.blue,
Colors.lightBlueAccent,
]),
),
child: Column(
children: <Widget>[alucard, welcome, lorem],
),
);
return Scaffold(
body: body,
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12490 次 |
| 最近记录: |