Перевернуть экран в приложениях для Android
Немного освоившись с тем, как приложение выглядит на экране девайсов под Андроидом, возникает вполне здравый вопрос — как повернуть экран, ведь он может и сам поворачиваться, если смартфон повернуть в руках, почему не делать это программно когда это нужно?
Ответ тоже негромоздкий, в пару строчек. Добавив в Uses предварительно модуль FMX.Platform, код для обработчика события кнопки будет такой, для смены положения экрана с портретного на альбомный:
procedure TLogin.FormCreate(Sender: TObject); var ScreenService: IFMXScreenService; OrientSet: TScreenOrientations; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService) then begin ScreenService := TPlatformServices.Current.GetPlatformService (IFMXScreenService) as IFMXScreenService; OrientSet := [TScreenOrientation.soLandscape]; ScreenService.SetScreenOrientation(OrientSet); end; end; |
Как видно, все сводится к тому, что меняем свойство ориентации экрана ScreenService.SetScreenOrientation, если оно поддерживается в версии Андроида и девайса где запущен код.
Для смены ориентации экрана на портретную, свойство нужно соответственно поменять
OrientSet := [TScreenOrientation.soPortrait]; ScreenService.SetScreenOrientation(OrientSet); |
Вращение возможно еще против часовой стрелки, для этого можно воспользоваться инвертированными значениями:
OrientSet := [TScreenOrientation.soInvertedPortrait]; OrientSet := [TScreenOrientation.soInvertedLandscape]; |