其他分享
首页 > 其他分享> > Delphi Android – 检测设备方向的变化

Delphi Android – 检测设备方向的变化

作者:互联网

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

解决方法:

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

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;

标签:android,delphi,screen-orientation,orientation
来源: https://codeday.me/bug/20190824/1708222.html