Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как узнать сколько пикселей в 1 см?


FeLDMARShaL

Вопрос

Увожаемые форумчане. Встал вопрос ребром. Есть ли способ (кросплотворменный желаельно, для мобильныз устройств,но в приоритете пока андройд) по которому можно выставить высоту какойнибуть панельки ровно 1 сантиметр. Невзирая на разрешение экрана и колличестовdpi у экрана. Т.е. нужен способ по которому можно зная дпи, зная размер экрна в пикселах узнать сколько на этом экране пикселов входит в 1 см. Т.е, к прмеру, верхнюю панель задать 1 сантиметр на всех мобильных устройствах.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Ну и в чем же проблема? Если вы знаете количество пикселей в одном дюйме (dpi), то вы знаете количество пикселей в одном сантиметре. Или вам эту элементарную пропорцию расписать нужно?

Ссылка на комментарий
  • 0

Если кому интересно, то для iOS я метрику беру так:

uses
  FMX.BehaviorManager
....
var
  aFMXApplicationEventService: IFMXApplicationEventService;
  DeviceBehavior: IDeviceBehavior;
  DisplayMetrics: TDeviceDisplayMetrics;
....
  if TBehaviorServices.Current.SupportsBehaviorService(
    IDeviceBehavior, DeviceBehavior, Self) then
      DisplayMetrics := DeviceBehavior.GetDisplayMetrics(Self);

Тема закрыта.

Изменено пользователем FeLDMARShaL
Ссылка на комментарий
  • 0

Для iOS плотность так просто не получите. В файле FMX.Platform.iOS.pas зачем-то тупо умножается ScreenScale на базовую плотность 163 PPI и в итоге получите полную чепуху. См. там функцию function TPlatformCocoaTouch.GetDisplayMetrics: TDeviceDisplayMetrics.

Поэтому выходом может служить получение кода модели устройства с помощью SysCtlByName. Например, для iPhone 6+ получите код "iPhone7,2", а для iPad Air2 - "iPad5,3". Затем составьте список PPI для каждого устройства с помощью таблицы https://en.wikipedia.org/wiki/List_of_iOS_devices. См. там данные в строках "Hardware strings" и "Display". Конечно, придется следить за появлением новых устройств.

Ссылка на комментарий
  • 0

А вот еще сложнее задача. Есть компонент TImgae. И мы в этот компонент запихиваем изображение с камеры. Нужно сделать так чтобы камера нам давала именно такое изображение (в пикселах) сколько занимает этот компонент на экране. Т.е. нужно получить размер компонента в реальных пикселах. Баловался с AbsoluteHeight - не получилось, баловался с  формулой преобразования - тоже без результатно.

Вопрос как нам получить размер контрола в пекселах на экране телефона?

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...