我们有一些带有图像的按钮,我们只看到图像在iOS上正确缩放。在Android上,图像溢出按钮边界,因此我们基本上得到了图像的放大版本。
<Button VerticalOptions="CenterAndExpand" Grid.Column="1" Grid.Row="3">
<Button.Image>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="Revolutions_Button.png"
Android="Revolutions_Button.png" />
</Button.Image>
</Button>
我甚至尝试了HeightRequest
和WidthRequest
,即使这样有效,但它并不是一个真正可行的解决方案,因为我觉得难以编码高度和宽度对于在不同屏幕上缩放有意义大小。但即使这些选项只调整了按钮容器的大小,图像仍然完全不同。
我们如何让图片缩放以适应Android上按钮的界限?
答案 0 :(得分:1)
不幸的是,Xamarin Forms中的默认Button控件不支持您的场景(大图像,在Android上缩放以适应较小的按钮)。
以下是问题的样子。用于按钮的图像大于按钮大小(在此示例中为100x50),iOS缩放图像,但Android只显示图像中的前100x50(或200x100,具体取决于设备的dpi)像素。
您有什么选择?
Xamarin.Forms应该在Button上有Aspect属性来支持不同的图像渲染策略,我创建了一个功能请求/ bug:
图像控件已有此属性,请参阅what are possible values and how they affect image scaling。
我已经提交了Xamarin错误,请随时将自己添加到邮件列表中以接收更新:https://bugzilla.xamarin.com/show_bug.cgi?id=52938
答案 1 :(得分:1)
您是否尝试过ImageButton控制?
<ImageButton VerticalOptions="CenterAndExpand"
Grid.Column="1"
Grid.Row="3"
Aspect="AspectFit"
Source="Revolutions_Button.png" />