Android实例-获取屏幕的物理分辨率

本文介绍了一个使用 Delphi 的 FireMonkey (FMX) 框架来获取设备屏幕尺寸及 PPI 的简单示例。通过 TBehaviorServices 和 IDeviceBehavior 接口,可以轻松地获取到设备的物理分辨率、屏幕尺寸和每英寸像素数 (PPI),适用于跨平台应用程序开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

相关资料:

http://blog.qdac.cc/?p=1161

 

实例代码:

 1 unit Unit1;
 2 
 3 interface
 4 
 5 uses
 6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
 8   FMX.Controls.Presentation, FMX.StdCtrls, FMX.ScrollBox, FMX.Memo;
 9 
10 type
11   TForm1 = class(TForm)
12     Button1: TButton;
13     Label2: TLabel;
14     Memo1: TMemo;
15     procedure Button1Click(Sender: TObject);
16   private
17     { Private declarations }
18   public
19     { Public declarations }
20   end;
21 
22 var
23   Form1: TForm1;
24 
25 implementation
26 uses
27   FMX.BehaviorManager;//需要引入
28 {$R *.fmx}
29 {$R *.LgXhdpiPh.fmx ANDROID}
30 {$R *.Surface.fmx MSWINDOWS}
31 
32 procedure TForm1.Button1Click(Sender: TObject);
33 var
34   DeviceBehavior: IDeviceBehavior;
35   DisplayMetrics: TDeviceDisplayMetrics;
36 begin
37   if TBehaviorServices.Current.SupportsBehaviorService(IDeviceBehavior, DeviceBehavior, Self) then
38   begin
39     DisplayMetrics := DeviceBehavior.GetDisplayMetrics(Self);
40     Memo1.Lines.Add('物理分辨率:');
41     Memo1.Lines.Add(IntToStr(DisplayMetrics.PhysicalScreenSize.cx) + 'x' + IntToStr(DisplayMetrics.PhysicalScreenSize.cy));
42     Memo1.Lines.Add('屏幕尺寸:');
43     Memo1.Lines.Add(
44       FloatToStr(sqrt(
45       DisplayMetrics.PhysicalScreenSize.cx * DisplayMetrics.PhysicalScreenSize.cx / DisplayMetrics.PixelsPerInch / DisplayMetrics.PixelsPerInch +
46       DisplayMetrics.PhysicalScreenSize.cy * DisplayMetrics.PhysicalScreenSize.cy / DisplayMetrics.PixelsPerInch / DisplayMetrics.PixelsPerInch)));
47     Memo1.Lines.Add('PPI:');
48     Memo1.Lines.Add(FloatToStr(DisplayMetrics.PixelsPerInch));
49   end;
50 end;
51 
52 end.
View Code

 

转载于:https://www.cnblogs.com/FKdelphi/p/7912331.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值