【问题标题】:How to retrieve the dpi of the current device?如何检索当前设备的 dpi?
【发布时间】:2021-01-16 10:43:12
【问题描述】:

是否有任何函数可以检索移动设备(android/ios)的 DPI(或屏幕密度)?我在 Delphi Sydney 下。

【问题讨论】:

  • @MahdiYusefi 不,它不是重复的。您提到的问题使用 Andoid API,但 OP 问题也与 Delphi、FireMonkey 和 IOS 有关,它提供了一个单一的解决方案(请参阅我的答案)。您应该更好地阅读问题并注意标签。删除您的评论。我会删除我的。

标签: android ios delphi firemonkey


【解决方案1】:

在 FireMonkey 中,可以通过平台服务访问各种平台信息。要检索 PPI (DPI) 和设备显示比例,您可以使用 IFMXDeviceMetricsServiceIFMXScreenService

var
  MetricsService: IFMXDeviceMetricsService;
  Metrics: TDeviceDisplayMetrics;
  PPI: Integer;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXDeviceMetricsService, MetricsService) then
  begin
    Metrics := MetricsService.GetDisplayMetrics;
    PPI := Metrics.PixelsPerInch;
  end;
end;


var
  ScrService: IFMXScreenService;
  ScrScale: Single;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, ScrService) then
  begin
    ScrScale := ScrService.GetScreenScale;
  end;
end;

您可以在FireMonkey Platform Services找到所有 FMX 平台服务和信息的列表

注意:某些服务(例如 IFMXDeviceMetricsService)未在文档中列出。

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多