Я создаю приложение 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, что не имеет смысла.