Другая / дополнительная опция, с которой мы добились успеха, - это небольшой набор функций, которые используют значение плотности экрана для вычисления размеров экрана ... это, конечно, только приблизительное значение, поскольку есть только четыре плотности, но мы имеем нашел это очень полезным.
//=============================================================================
// inch
//
// compute approximate number of pixels for the specified physical on-screen
// size based on the density reported by the OS
//=============================================================================
function inch(size)
{
// default to 160 dpi if unavailable
var height = size * 160.0;
try
{
// compute header height based on screen density ... target .25" height
height = size * Ti.Platform.displayCaps.dpi;
}
catch(e) { warn("Error accessing display caps for screen density calculation: " + e); }
return height;
}
Так что, если вы хотите, чтобы на экране было что-то высотой 3/4 дюйма ...
Ti.UI.createThing({ height: inch(.75)});
... или если вы хотите масштабировать вещи по размеру точки, можно сделать несколько констант ...
const g_12pt = inch(12/72); //0.166667
const g_10pt = inch(10/72); //0.138889
const g_8pt = inch(8/72); //0.111111
const g_6pt = inch(6/72); //0.083333
...
...font:{fontSize: g_10pt, fontWeight:"bold"},...
Мы также создали несколько функций для определения высоты и ширины экрана, поэтому, если мы хотим улучшить макет на планшете или что-то крошечное, мы можем лучше понять, с чем имеем дело.
//=============================================================================
// screenWidth - return screen width in inches
//=============================================================================
function screenWidth()
{
return Titanium.Platform.displayCaps.platformWidth / Titanium.Platform.displayCaps.dpi;
}
//=============================================================================
// screenHeight - return screen height in inches
//=============================================================================
function screenHeight()
{
return Titanium.Platform.displayCaps.platformHeight / Titanium.Platform.displayCaps.dpi;
}
Вы можете продолжать и продолжать оттуда ... но это действительно помогло нам понять, как мы размещали наши экраны на разных плотностях и платформах. Функция inch имеет обработку исключений только потому, что мы используем ее в начале приложения, а иногда платформа Ti.Platform все еще не определена. К тому времени, когда мы выкладываем наши отчеты, Ti.Platform доступна, поэтому функции экрана не имеют обработки исключений. Если вам нужно сделать запрос раньше, вам также может понадобиться обработка исключений.
Надеюсь, это поможет!