如何在 Flutter 中将选取的图像显示在圆形头像中?
How to display picked image in a circle avatar in Flutter?
我有以下代码启动图像选择器到select图库中的图像。
File _image;
final picker = ImagePicker();
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
_image = File(pickedFile.path);
});
}
图像 select 编辑后,我希望该图像显示在已经存在的 CircleAvatar
中。
调用上面的方法 getImage() 如下所示:
InkWell(
onTap: getImage,
child: CircleAvatar(
backgroundColor: Colors.black,
radius: 40.0,
child: CircleAvatar(
radius: 38.0,
child: ClipOval(
child: Image.asset('images/newimage.png'),
),
backgroundColor: Colors.white,
),
)
),
我有一个 ClipOval
,它是 CircleAvatar
的子项,并且有一个默认的 AssetImage 作为其子项。我不知道如何用从图库中挑选的图片替换这张 占位符图片 !感谢任何帮助。
您可以使用 _image
变量来检查它是否为空,然后相应地在 ClipOval
中设置图像。
InkWell(
onTap: getImage,
child: CircleAvatar(
backgroundColor: Colors.black,
radius: 40.0,
child: CircleAvatar(
radius: 38.0,
child: ClipOval(
child: (_image != null)
? Image.file(_image)
: Image.asset('images/newimage.png'),
),
backgroundColor: Colors.white,
),
),
);
Container (
child:image != null? Container (.
height:,
width:,
Decoration: BoxDecoratiob(
shape: BoxShape.circular
Image : DecorationImage(
Image : FileImage(image)
fit:BoxFit.fill
))
): Container (
Child:...
)
)
Use background image
CircleAvatar(
backgroundImage:Image.file(_image),
),
您必须在 ClipOval 的子项中使用 _image。那可行。您还可以添加 null 或空的检查,
InkWell(
onTap: getImage,
child: CircleAvatar(
backgroundColor: Colors.black,
radius: 40.0,
child: CircleAvatar(
radius: 38.0,
child: ClipOval(
child: Image.file(_image),
),
),
)
),
就是这样 easy.only 将您的文件放入 FileImage
并嵌入到 CircleAvatar 小部件的 backgroundImage
中。
CircleAvatar(radius: 50.0,
backgroundColor: Colors.white,
backgroundImage: FileImage(profileImageFile))
您可以使用 CircleAvatar
并提供文件对象。 .image
将为您提供所需的 ImageProvider。
CircleAvatar(
backgroundColor: Colors.red,
radius: radius,
child: CircleAvatar(
radius: radius - 5,
backgroundImage: Image.file(
profileImage,
fit: BoxFit.cover,
).image,
),
)
你可以像这样使用 CircleAvatar 小部件
CircleAvatar(backgroundImage: Image.file(
File(_image.path
.toString()),
fit: BoxFit.cover,).image,
)
我有以下代码启动图像选择器到select图库中的图像。
File _image;
final picker = ImagePicker();
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
_image = File(pickedFile.path);
});
}
图像 select 编辑后,我希望该图像显示在已经存在的 CircleAvatar
中。
调用上面的方法 getImage() 如下所示:
InkWell(
onTap: getImage,
child: CircleAvatar(
backgroundColor: Colors.black,
radius: 40.0,
child: CircleAvatar(
radius: 38.0,
child: ClipOval(
child: Image.asset('images/newimage.png'),
),
backgroundColor: Colors.white,
),
)
),
我有一个 ClipOval
,它是 CircleAvatar
的子项,并且有一个默认的 AssetImage 作为其子项。我不知道如何用从图库中挑选的图片替换这张 占位符图片 !感谢任何帮助。
您可以使用 _image
变量来检查它是否为空,然后相应地在 ClipOval
中设置图像。
InkWell(
onTap: getImage,
child: CircleAvatar(
backgroundColor: Colors.black,
radius: 40.0,
child: CircleAvatar(
radius: 38.0,
child: ClipOval(
child: (_image != null)
? Image.file(_image)
: Image.asset('images/newimage.png'),
),
backgroundColor: Colors.white,
),
),
);
Container (
child:image != null? Container (.
height:,
width:,
Decoration: BoxDecoratiob(
shape: BoxShape.circular
Image : DecorationImage(
Image : FileImage(image)
fit:BoxFit.fill
))
): Container (
Child:...
)
)
Use background image
CircleAvatar(
backgroundImage:Image.file(_image),
),
您必须在 ClipOval 的子项中使用 _image。那可行。您还可以添加 null 或空的检查,
InkWell(
onTap: getImage,
child: CircleAvatar(
backgroundColor: Colors.black,
radius: 40.0,
child: CircleAvatar(
radius: 38.0,
child: ClipOval(
child: Image.file(_image),
),
),
)
),
就是这样 easy.only 将您的文件放入 FileImage
并嵌入到 CircleAvatar 小部件的 backgroundImage
中。
CircleAvatar(radius: 50.0,
backgroundColor: Colors.white,
backgroundImage: FileImage(profileImageFile))
您可以使用 CircleAvatar
并提供文件对象。 .image
将为您提供所需的 ImageProvider。
CircleAvatar(
backgroundColor: Colors.red,
radius: radius,
child: CircleAvatar(
radius: radius - 5,
backgroundImage: Image.file(
profileImage,
fit: BoxFit.cover,
).image,
),
)
你可以像这样使用 CircleAvatar 小部件
CircleAvatar(backgroundImage: Image.file(
File(_image.path
.toString()),
fit: BoxFit.cover,).image,
)