我正在以xamarin形式创建UI,我想我错过了创建电话UI的基本前提。
我想做的是在保持比例的同时将UI缩放到屏幕。认为这将使我能够在高分辨率到中等分辨率的手机上显示UI。目前,我滥用硬编码边距,当我换成分辨率更高或更低的手机时,得到的结果当然还不到可接受的范围。我已经尝试过堆栈和网格布局。水平问题被horizontalOptions忽略了,但是垂直问题却很糟糕。
我必须支持iOS 6s及更高版本。 Android支持信封正在“开发中”。可以说屏幕尺寸和密度会有所不同。
我认为最初的question可能会使我走上比所需更艰难的道路,因此我想问一下社区如何处理此问题,然后再将自定义代码应用于每个元素以将其调整为屏幕的一部分尺寸。那似乎没有通过嗅探测试。 #CodeSmells
完美的世界是一种布局,它可以填充整个空间并按比例缩放所有元素,包括字体大小。那是东西吗?
我这里没有添加任何代码,因为我确实在寻找一种策略或模式。
答案 0 :(得分:0)
创建一个具有所有大小的静态类,以在应用程序内部使用。 像这样:
public static class UiSettings
{
public static double Scale = 1.0;
public static void Init(double scale = 1.0)
{
Scale = scale;
//can do more here, override props etc
}
public static double StandartTextSize => 12.0 * Scale;
public static double StandartButtonMargin => new Thickness(2.0* Scale,2.0* Scale,2.0* Scale,2.0* Scale);
}
现在您可以根据需要/检测到的分辨率来致电启动
UiSettings.Init(1.2); //set scale etc