这是我的代码:
new Image.asset('images/launcher/border_highlight.9.png', fit: BoxFit.fill)));
当我更改图像的宽度和高度时,它的显示效果很差,但在原生android中显示正常。
扑了不支持.9图片?还有另一种方法可以达到同样的效果吗?
答案 0 :(得分:2)
如果您知道九补丁图像中间部分的坐标,则可以在“图像”窗口小部件上设置centerSlice属性。我们目前无法自动从图像中读取这些坐标。如果有关于Android如何做到这一点的任何文档,我们可以考虑做些事情,请不要犹豫提交功能请求。
答案 1 :(得分:1)
Flutter支持类似的概念,但不直接支持9补丁文件,因此它实际上可用于任何图像。
例如,我在这里有一个50x50的图片,button.png
:
在Photoshop中放大到1200%时,我们可以看到我们想要定义为“中心”的区域,以便可以对其进行拉伸。我从每个边缘以15px的距离绘制了一些蓝色辅助线:
要在Flutter中使用它,我们可以使用centerSlice
属性并传入一个Rect,该Rect基本上定义了我在Photoshop中绘制的矩形,即宽度和高度都从15px到35px:
Image.asset(
"images/button.png",
height: 100,
width: 350,
centerSlice: Rect.fromLTRB(15, 15, 35, 35),
)
结果如下(不传递centerSlice
,而是传递fit: BoxFit.fill
):
答案 2 :(得分:0)
目前Flutter支持
JPEG,PNG,GIF,动画GIF,WebP,动画WebP,BMP和WBMP