Delphi Android - 检测设备方向变化

2023-12-14

Delphi Android 开发新手。如何检测屏幕方向已更改?即从肖像到风景,反之亦然?发生这种情况时如何触发代码?例如,我有一个图像尺寸为 300x200,在纵向模式下,但当设备切换到横向时,我希望它调整并占据全屏宽度。


在你的表单中实现一个方法

procedure DoOrientationChanged(const Sender: TObject; const M: TMessage);

您处理当前方向的位置。像这样订阅 FormCreate 中的方向变化

TMessageManager.DefaultManager.SubscribeToMessage(TOrientationChangedMessage, DoOrientationChanged);

并在 FormDestroy 中取消订阅,如下所示:

TMessageManager.DefaultManager.Unsubscribe(TOrientationChangedMessage, DoOrientationChanged);

要找出当前的屏幕方向,只需询问 IFMXScreenService:

var
  screenService: IFMXScreenService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, screenService) then begin
    case screenService.GetScreenOrientation of
      TScreenOrientation.Portrait: ;
      TScreenOrientation.Landscape: ;
      TScreenOrientation.InvertedPortrait: ;
      TScreenOrientation.InvertedLandscape: ;
    end;
  end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi Android - 检测设备方向变化 的相关文章