2016-03-04 6 views
0

В настоящее время я использую проценты для поддержки моего пользовательского интерфейса Android-приложения, но я думаю, что это не лучшее решение.Одна сетка координат для всех Android-устройств (Appcelerator)

Я нашел это в документации:

The coordinates grid 
Titanium uses a grid coordinate system for layout. Grid locations are based on the system unit (platform-dependent unit). This means that by default on iOS, elements are positioned on a density-independent grid and on Android on a density-dependent grid. The net result is that on iOS, elements are positioned in visually the same locations regardless of the actual density of the screen. On Android, elements are positioned at the same absolute pixel locations and might lay out differently depending on the device. 

iPhone with either original or retina display is based on a 320 x 480 dip grid. 
iPad is based on a 1024 x 768 dip grid. 
Android device screen sizes vary. Considering these emulator examples: 

HVGA emulator is 320 x 480 px 
WVGA800 emulator is 480 x 800 px 
WVGA854 emulator is 480 x 854 px 
Remember that you can specify dp or dip units on Android (and even set an app-level default in tiapp.xml) to achieve the same density-independent grid as offered by default on iOS. 

Как я думаю, это последнее предложение должно означать, если я установить по умолчанию приложения уровня в tiapp.xml к дпу или провал, то я должен иметь координату сетка с шириной 320 px (dip) ... Но когда я запускаю свое приложение, ширина окон и просмотров составляет 360 ... Почему? В чем проблема?

Это информация о файле displayCaps на моем устройстве.

[INFO] : Ti.Platform.displayCaps.density: xxhigh 
[INFO] : Ti.Platform.displayCaps.dpi: 480 
[INFO] : Ti.Platform.displayCaps.platformHeight: 1776 
[INFO] : Ti.Platform.displayCaps.platformWidth: 1080 
[INFO] : Ti.Platform.displayCaps.logicalDensityFactor: 3 
[INFO] : Ti.Platform.displayCaps.xdpi: 442.45098876953125 
[INFO] : Ti.Platform.displayCaps.ydpi: 443.3450012207031 

ответ

0

На Android displayCaps.platformWidth и Height всегда сообщает в пикселях, в то время как на прошивке они всегда находятся в дпе. (источник: docs).

Какая настройка ti.ui.defaultunit действительно то, что он определяет, какой блок используется, когда вы используете число для таких свойств, как width:100. Вы всегда можете форсировать блок, используя строку, такую ​​как width:'100px'.

Всегда лучше использовать dp, так что независимо от dpi на устройстве, размер будет примерно одинаковым.