Flutter 将图像插入容器颤振应用程序
我正在查看我在startflutter.com上找到的这个模板,完整的代码可以在下面看到 我尝试将自己的图像插入圆圈中,但似乎没有办法将图像完全放入方框中(它总是被裁剪) 我想在容器中插入一个图像,如下所示Flutter 将图像插入容器颤振应用程序,flutter,Flutter,我正在查看我在startflutter.com上找到的这个模板,完整的代码可以在下面看到 我尝试将自己的图像插入圆圈中,但似乎没有办法将图像完全放入方框中(它总是被裁剪) 我想在容器中插入一个图像,如下所示 @override Widget build(BuildContext context) { final alucard = Container( decoration: new BoxDecoration( image: new D
@override
Widget build(BuildContext context) {
final alucard = Container(
decoration: new BoxDecoration(
image: new DecorationImage(
image: new AssetImage("images/logo.png"),
fit: BoxFit.fill,
)
)
);
但这不起作用,也不会出现,这有什么问题吗
这是整页的代码
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,
);
}
}
导入“包装:颤振/材料.省道”;
类主页扩展了无状态小部件{
静态字符串标记='主页';
@凌驾
小部件构建(构建上下文){
最后一张卡片=英雄(
标签:“英雄”,
孩子:填充(
填充:所有边缘设置(16.0),
孩子:圆环星(
半径:72.0,
背景颜色:颜色。透明,
背景图片:AssetImage('assets/alucard.jpg'),
),
),
);
最终欢迎=填充(
填充:边缘设置。全部(8.0),
子:文本(
“欢迎卡”,
样式:TextStyle(字体大小:28.0,颜色:Colors.white),
),
);
最终lorem=填充(
填充:边缘设置。全部(8.0),
子:文本(
“Lorem ipsum dolor sit amet,献祭精英。Donec hendrerit调味品mauris id”,
样式:TextStyle(fontSize:16.0,颜色:Colors.white),
),
);
最终主体=容器(
宽度:MediaQuery.of(context).size.width,
填充:所有边缘设置(28.0),
装饰:盒子装饰(
渐变:线性渐变(颜色:[
颜色,蓝色,
颜色。浅蓝色口音,
]),
),
子:列(
孩子们:[阿鲁卡,欢迎,洛伦],
),
);
返回脚手架(
身体:身体,,
);
}
}
传递BoxFit。将填充到您的图像中。资产应该可以
试试这个
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,
);
}
}
导入“包装:颤振/材料.省道”;
类主页扩展了无状态小部件{
静态字符串标记='主页';
@凌驾
小部件构建(构建上下文){
最后一张卡片=英雄(
标签:“英雄”,
孩子:填充(
填充:所有边缘设置(16.0),
子容器:新容器(
身高:80.0,
宽度:80.0,
装饰:新盒子装饰(
图像:装饰图像(
图片:新资产时代(
“assets/alucard.jpg”),
fit:BoxFit.fill,
),
边界半径:
边界半径。圆形(80.0),
),
),
),
);
最终欢迎=填充(
填充:边缘设置。全部(8.0),
子:文本(
“欢迎卡”,
样式:TextStyle(字体大小:28.0,颜色:Colors.white),
),
);
最终lorem=填充(
填充:边缘设置。全部(8.0),
子:文本(
“Lorem ipsum dolor sit amet,献祭精英。Donec hendrerit调味品mauris id”,
样式:TextStyle(fontSize:16.0,颜色:Colors.white),
),
);
最终主体=容器(
宽度:MediaQuery.of(context).size.width,
填充:所有边缘设置(28.0),
装饰:盒子装饰(
渐变:线性渐变(颜色:[
颜色,蓝色,
颜色。浅蓝色口音,
]),
),
子:列(
孩子们:[阿鲁卡,欢迎,洛伦],
),
);
返回脚手架(
身体:身体,,
);
}
}
使用此选项更改容器会很好
Container(
height: 120.0,
width: 120.0,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
'assets/assets/alucard.jpg'),
fit: BoxFit.fill,
),
shape: BoxShape.circle,
),
)
试试这个
new Container(
width: 100.00,
height: 100.00,
decoration: new BoxDecoration(
image: new DecorationImage(
image: ExactAssetImage('assets/example.png'),
fit: BoxFit.fitHeight,
),
));
确保通过编辑pubspec.yaml文件告诉flifter您的资产文件夹在哪里可以将图像添加到容器中-
[您的\u图像\u文件夹\u路径/图像\u名称]
Container(
child: Image(image: AssetImage("images/logo.png")))
请试试这个:
Container(
height: _height*0.35,
width: _width,
decoration: BoxDecoration(
image: DecorationImage(
image: ExactAssetImage('assets/splash_img.jpeg'),
fit: BoxFit.fitHeight,
),
),
),
增大圆电视的半径会有助于你的事业吗?我试着让它保持图像的相同裁剪。你能再描述一下你想要的和你实际看到的吗?也许还可以共享您正在使用的图像我正在尝试做的就是在“final welcome”和“final lorem”中的文本上方插入完整图像……图像将显示在“CircleAvatar”类中,但当我尝试使用容器时,它将根本不显示任何内容,并且没有占位符空间。我试着用一堆不同的图片来展示它,但它不会。。。我不认为这与图像有关我得到一个错误,说。。。。参数类型“Image”无法分配给参数类型“ImageProvider”,我无法在backgroundImageMy bad中使用Image.asset。现在编辑。检查,这对你有用吗?因为我有你在我的问题中写的减去填充和边界半径。当我运行你编写的那段代码时,我仍然遇到同样的问题。它不会显示图像,也不会在图像需要高度和宽度的容器的位置留下占位符。请按照@AlbertLardizabal的建议设置容器的高度和宽度。我还编辑了我的答案,设置了容器的高度和宽度。如何在颤振中使小图像适合大容器?请建议。谢谢
Container(
height: _height*0.35,
width: _width,
decoration: BoxDecoration(
image: DecorationImage(
image: ExactAssetImage('assets/splash_img.jpeg'),
fit: BoxFit.fitHeight,
),
),
),