原文链接:http://delphi.org/2014/10/fire-ui-and-the-multi-device-designer/
在CodeRage 8时我完成了一个Fire界面和多设备设计器。你可以找出我以前的为Moto 360创建一个定制的Fire界面视图看看。
Fire界面包含三部分:
行为服务(Behavior Services) – 运行期和设计期平台设计信息
多设备设计器(Multi-Device Designer) – 统一的工程界面调整平台
多视图组件(TMultiView)– 调整布局
行为服务在设计期:
例如:
TTabControl.TabPosition
Bottom 在 iOS, 其它的Top
Font.Size 和 Font.Family
许多控件有一个Size.PlatformDefault = True
TMultiView mode
行为服务在运行期:
TBehaviorServices 类,位于 FMX.BehaviorManager.pas
IDeviceBehavior 定义
GetDeviceClass: TDeviceInfo.TDeviceClass;
GetOSPlatform: TOSPlatform; // Windows, OSX, iOS, Android
GetDisplayMetrics: TDeviceDisplayMetrics;
IFontBehavior 定义
GetDefaultFontFamily 和 GetDefaultFontSize
OS 特定的例子:
var DeviceBehavior: IDeviceBehavior; begin if TBehaviorServices.Current.SupportsBehaviorService(? IDeviceBehavior, DeviceBehavior, Self) and (DeviceBehavior.GetOSPlatform = TOSPlatform.iOS) then // behavior specific to iOS end;
显示度量的例子及TDeviceDisplayMetrics 定义:
var DisplayMetrics: TDeviceDisplayMetrics; begin // self is a form in this case DisplayMetrics := DeviceBehavior.GetDisplayMetrics(Self); if DisplayMetrics.AspectRatio > x then // AspectRatio specific behavior end;
type TDeviceDisplayMetrics = record PhysicalScreenSize: TSize; LogicalScreenSize: TSize; AspectRatio: Single; PixelsPerInch: Integer; ScreenScale: Single; FontScale: Single; end;
更多信息(略)