如何知道 Delphi XE8 中位图的比例?

How to know the scale for a bitmap in Delphi XE8?

我有一个用于绘制签名的图像组件。目前您必须手动设置比例 属性 才能正确绘制,因为每个设备都有不同的屏幕密度。

有没有办法计算比例,或者不必同时使用 Android 和 iOS 的比例?

正如您在下面的 link 中所读到的,每个 android 和 iOS 设备都有不同的屏幕密度:http://docwiki.embarcadero.com/RADStudio/XE8/en/Using_Multi-Resolution_Bitmaps

也尝试过这种方法,但它没有给出正确的比例:

function GetScreenScale: Single;
var
   ScreenService: IFMXScreenService;
begin
   Result := 1;
   if TPlatformServices.Current.SupportsPlatformService (IFMXScreenService, IInterface(ScreenService)) then
   begin
      Result := ScreenService.GetScreenScale;
   end;
end;

解法:

function GetScreenScale: Single;
var
   Service : IFMXScreenService;
begin
   Service := IFMXScreenService(
      TPlatformServices.Current.GetPlatformService(IFMXScreenService));
   Result := Service .GetScreenScale;
end;