Перевернуть экран в приложениях для 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];

Вам понравиться

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *