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

Выбор представления (View)


Alex Bozhko

Вопрос

Не совсем понятная ситуация с выбором представления для конкретного устройства.
 
Создаю для приложения все стандартные Android представления; запускаю приложение на этом устройстве:
http://rozetka.com.ua/huawei_ascend_g630_51050ahv/p1130905/
 
Выбирается представление Android 10" Tablet.
 
На офф. сайте алгоритм выбора описан несколько сумбурно. Вот пытаюсь разобраться.
 
Сделал тест. Код простейший.

procedure TForm3.FormCreate(Sender: TObject);
begin
 lblMinimumDiagonal.Text:= FloatToStr(TDeviceInfo.ThisDevice.MinDiagonal);
 lblMaximumDiagonal.Text:= FloatToStr(TDeviceInfo.ThisDevice.MaxDiagonal);

 if TDeviceInfo.ThisDevice.DeviceClass in [TDeviceInfo.TDeviceClass.Phone] then
 lblDeviceClass.Text:= lblDeviceClass.Text+ 'Phone ';

 if TDeviceInfo.ThisDevice.DeviceClass in [TDeviceInfo.TDeviceClass.Tablet] then
 lblDeviceClass.Text:= lblDeviceClass.Text+ 'Tablet ';

 if TDeviceInfo.ThisDevice.Exclusive then
 lblExclusive.Text:= 'Exclusive'
 else
 lblExclusive.Text:= 'not Exclusive';
 end;

кому надо, качайте собранное: https://yadi.sk/d/SHdkwstejgXrH

 

на Huawei получаем

 

MaxDiagonal - 9.17877...

MinDiagonal - 9.17877...

 

Откуда такая диагональ?

 

Exclusive

Device Class - Phone.

 

Запускаю на Sony Xperia M2 (http://www.sonymobile.com/ru/products/phones/xperia-m2/specifications/#tabs)

 

Всё честно. MaxDiagonal - 4,727; Exclusive; Phone

Представление выбирается Android 4"

?? Почему не 5"

 

Дальше -больше

Lenovo Yoga Tablet

Диагональ 8

Exclusive

Tablet

Представление - 10" Почему не 7"????

 

Собственно, такой выбор представления мне кажется не совсем логичным.

 

 

 

 

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

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

  • 0

Для Android вычисляйте диагональ сами:

===================================
Diagonal_in_Inch:= Sqrt(Sqr(DeviceMetricsService.GetDisplayMetrics.PhysicalScreenSize.Width) + Sqr(DeviceMetricsService.GetDisplayMetrics.PhysicalScreenSize.Height)) / DeviceMetricsService.GetDisplayMetrics.PixelsPerInch;

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

Для Android вычисляйте диагональ сами:

===================================

Diagonal_in_Inch:= Sqrt(Sqr(DeviceMetricsService.GetDisplayMetrics.PhysicalScreenSize.Width) + Sqr(DeviceMetricsService.GetDisplayMetrics.PhysicalScreenSize.Height)) / DeviceMetricsService.GetDisplayMetrics.PixelsPerInch;

Да вычислить диагональ-то не проблема. Как представление нужное привязать?

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...