Определение, когда приложение Android заканчивает изменение размера в полноэкранный режим - PullRequest
0 голосов
/ 25 мая 2019

Я создаю приложение Delphi для Android, которое масштабирует изображения на основе полноэкранного разрешения устройства.

Чтобы включить полноэкранный режим, я делаю:
1. В «Параметры проекта / Приложение / Информация о версии» я установил тему «Без заголовка».
2. Установите «Form.Fullscreen» в состояние «OnCreate» главной формы.

Однако у меня возникают проблемы с определением, когда мое приложение, наконец, становится полноэкранным (так как несколько событий FormResize запускаются последовательно), я подозреваю, что в функции Delphi может быть ошибка округления, вот журнал:

03:56:36.660: I/info(15344): FMX: ZP Remote: ZPR_DBG: FormCreate
03:56:36.660: I/info(15344): FMX: ZP Remote: ZPR_DBG: Screen Scale                    : 1.3125
03:56:36.666: I/info(15344): FMX: ZP Remote: ZPR_DBG: IFMXScreenService.GetScreenSize : 1280x736 (with screen scale)
03:56:36.666: I/info(15344): FMX: ZP Remote: ZPR_DBG: IFMXScreenService.GetScreenSize : 975x561 (original)
03:56:36.666: I/info(15344): FMX: ZP Remote: ZPR_DBG: Screen                          : 975x561

03:56:36.664: I/info(15344): FMX: ZP Remote: ZPR_DBG: FormResize, Client              : 975x537
03:56:36.724: I/info(15344): FMX: ZP Remote: ZPR_DBG: FormResize, Client              : 975x537
03:56:36.940: I/info(15344): FMX: ZP Remote: ZPR_DBG: FormResize, Client              : 975x562

Первые 4 строки содержат сведения о системе из IFMXScreenService.GetScreenScale, IFMXScreenService.GetScreenSize и Screen.Width / Screen.Height.

Каждая строка «client» показывает значения «ClientWidth / ClientHeight» для события FormResize.

Как видите, значение ClientHeight выше значения Screen.Height, что не имеет смысла.

...