【问题标题】:Delphi Android - detect device orientation changeDelphi Android - 检测设备方向变化
【发布时间】:2015-09-19 15:45:30
【问题描述】:

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

【问题讨论】:

    标签: android delphi orientation screen-orientation


    【解决方案1】:

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

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多