了解 MauiImage BaseSize

Mir*_*rek 2 android maui visual-studio-2022

我需要一些帮助来了解Visual Studio 中BaseSize的参数MauiImage以及导入缩放到不同屏幕密度的图像所需的过程,可能还需要一些有关移动设备上图像密度缩放的基础知识。

假设我有一个宽度为 380px、高度为 168px 的 PNG 图像,如下所示。

示例图像

文档

可以通过将 BaseSize 属性设置为可被 8 整除的值来指定图像的基本尺寸:

那么...我现在该怎么办?380px 不能被 8 整除。我是否将宽度更改为 384 或 376 BaseSize="376,168"?生成的图像是否会被裁剪 4 个像素?或者这里正确的解决方案是什么?

BaseSize 属性的值表示图像的基线密度,并且实际上是图像的 1.0 比例因子(通常在代码中用于指定图像大小的大小),所有其他密度大小均从中派生。该值将用于确保图像正确调整大小以适应不同的显示密度。如果您没有为位图图像指定 BaseSize,则不会调整图像的大小。

我正在 Android 上构建,此页面显示 Android 基线密度是 160dpi 或mdpi.

那么...这是否意味着 MAUI 自动为 ldpi、hdpi、xhdpi、xxhdpi、xxxhdpi 创建图像?

但是......这是否意味着图像会在更高的屏幕密度上变得像素化?

如果将上面的图像定义为最高屏幕密度,然后在不损失质量的情况下缩小到较低密度,不是更有意义吗?

Too*_*eve 5

“这是否意味着图像在更高的屏幕密度上会出现像素化?”

  • 的最佳用途BaseSize是提供矢量图像或至少与您关心的最高分辨率一样高分辨率的图像。

然后是的,BaseSize告诉毛伊岛为不同的设备存储什么大小。

  • 如果您有一个 1280 x 1280 图像,并且知道您将显示的图像不大于两英寸(320 DIP),那么您可以通过指定BaseSize="320,320".

这将在 Density=1 设备上存储 320x320 图像。
将在 Density=4 设备上存储完整的 1280x1280。

  • 您有png一个中等尺寸的。您可以省略 BaseSize。然后,无论设备如何,您的图像都将“按原样”存储。您的页面布局将指定其呈现的区域。渲染时缩放。

  • 如果对该图像使用 BaseSize,请使用“绘画”编辑器用透明像素填充边缘,使其可被 8 整除。

  • 我不知道毛伊岛是否曾经为高密度设备存储放大的图像(比原始图像大)。我希望不是; 它能够在渲染图像时进行缩放,因此逻辑实现是在这种情况下存储原始图像。