Skip to content
Titanium SDK
Version12.5.1

You are reading 12.5.1. See this page in 13.4.1.

Titanium.Platform.DisplayCaps

proxyAndroidiPhoneiPadmacOSsince 0.8

Extends Titanium.Proxy

The Display Caps object returned by the Titanium.Platform.displayCaps property.

On iPhone and iPod devices with retina display, the density property is high and the dpi property is 320. For other iPhone and iPod devices, density is medium and dpi is 160.

On iPad devices with retina display, the density property is high and the dpi property is 260. For other iPad devices, density is medium and dpi is 130.

Note that Xcode versions prior to 4.3.1 do not have the correct tools to detect the iPad 3 retina display. Apps must be built with Xcode 4.3.1 or later to detect iPad 3 retina display.

Note that the displayCaps property begins with a lowercase letter, which differentiates it from the DisplayCaps object that it returns. Refer to the example to understand how it should be called.

On Android you have to make sure that the Activity is created before you fetch the displayCaps values. Use the window onOpen event or win.activity.onCreate = () => {};.

Examples

System Display Information

Output the display properties to the system log.

Ti.API.info('Ti.Platform.displayCaps.density: ' + Ti.Platform.displayCaps.density);
Ti.API.info('Ti.Platform.displayCaps.dpi: ' + Ti.Platform.displayCaps.dpi);
Ti.API.info('Ti.Platform.displayCaps.platformHeight: ' + Ti.Platform.displayCaps.platformHeight);
Ti.API.info('Ti.Platform.displayCaps.platformWidth: ' + Ti.Platform.displayCaps.platformWidth);
if((Ti.Platform.osname === 'iphone')||(Ti.Platform.osname === 'ipad')||(Ti.Platform.osname === 'android')){
  Ti.API.info('Ti.Platform.displayCaps.logicalDensityFactor: ' + Ti.Platform.displayCaps.logicalDensityFactor);
}
if(Ti.Platform.osname === 'android'){
  Ti.API.info('Ti.Platform.displayCaps.xdpi: ' + Ti.Platform.displayCaps.xdpi);
  Ti.API.info('Ti.Platform.displayCaps.ydpi: ' + Ti.Platform.displayCaps.ydpi);
}

Properties 10

apiName

Stringsince Android 3.2.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0read-only

Inherited from Titanium.Proxy

The name of the API that this proxy corresponds to.

bubbleParent

Booleansince Android 3.0.0, iPhone 3.0.0, iPad 3.0.0, macOS 9.2.0

Inherited from Titanium.Proxy

Indicates if the proxy will bubble an event to its parent.

Default: true

density

Stringread-only

Logical density of the display.

dpi

Numberread-only

Display density expressed as dots-per-inch.

logicalDensityFactor

Numbersince 3.4.1read-only

Logical density of the display, as a scaling factor for the Density Independent Pixel (dip) unit.

One dip is one pixel on a 160dpi display, approximately, with a 240x320, 1.5"x2" display providing a baseline. For example, for a 160dpi display, this value will be 1, and for 120dpi, it will be .75.

This value does not precisely follow the real display size, as given by xdpi and ydpi, but instead is used to scale the size of the overall UI in steps based on changes in the display dpi. For example, a 240x320 screen will have a density of 1, whether its width is 1.8" or 1.3". However, if the resolution is increased to 320x480 but the display remains 1.5"x2" then the density would be increased to about 1.5.

On iOS devices, this property returns 1, 2 and 3 for @1x, @2x and @3x respectively. Note for iPhone 6+, this value is 3.

platformHeight

Numberread-only

Absolute height of the display in relation to UI orientation. Measured in platform-specific units; pixels on Android and density-independent pixels (dip) on iOS.

This property depends on the orientation of the UI, rather than the physical orientation of the device. While these may often be one in the same, it is not necessarily the case when orientation is restricted by Titanium.UI.Window.orientationModes. See example for clarification.

Platform Width and Height

Create a window and limit it to portrait mode. Start the app and observe that the platform width and height is output to the log. Change the physical orientation of the device and click the window to test again. Note that the logged information relates to the UI rather than the physical orientation of the device.

var win = Ti.UI.createWindow({
  title: 'Click window to output UI dimensions',
  backgroundColor: 'white',
  orientationModes: [ Titanium.UI.PORTRAIT ], // UI restricted to portrait mode
  fullscreen: false,
  exitOnClose: true
});

var label = Ti.UI.createLabel({
  text:'Hello world'
});
win.add(label);

function logDisplayCaps(){
  Ti.API.info('Width x Height: ' + Ti.Platform.displayCaps.platformWidth + ' x ' + Ti.Platform.displayCaps.platformHeight);
}

win.addEventListener('click',function(e){
  // as the UI orientation is restricted by orientationModes, this will only ever
  // output the dimensions of the UI in portrait mode. For example, 480 x 800 for the
  // Android device tested
  logDisplayCaps();
});

win.open();

logDisplayCaps();

platformWidth

Numberread-only

Absolute width of the display in relation to UI orientation. Measured in platform-specific units; pixels on Android and density-independent pixels (dip) on iOS.

This property depends on the orientation of the UI, rather than the physical orientation of the device. While these may often be one in the same, it is not necessarily the case when orientation is restricted by Titanium.UI.Window.orientationModes. See example for clarification.

Platform Width and Height

Create a window and limit it to portrait mode. Start the app and observe that the platform width and height is output to the log. Change the physical orientation of the device and click the window to test again. Note that the logged information relates to the UI rather than the physical orientation of the device.

var win = Ti.UI.createWindow({
  title: 'Click window to output UI dimensions',
  backgroundColor: 'white',
  orientationModes: [ Titanium.UI.PORTRAIT ], // UI restricted to portrait mode
  fullscreen: false,
  exitOnClose: true
});

var label = Ti.UI.createLabel({
  text:'Hello world'
});
win.add(label);

function logDisplayCaps(){
  Ti.API.info('Width x Height: ' + Ti.Platform.displayCaps.platformWidth + ' x ' + Ti.Platform.displayCaps.platformHeight);
}

win.addEventListener('click',function(e){
  // as the UI orientation is restricted by orientationModes, this will only ever
  // output the dimensions of the UI in portrait mode. For example, 480 x 800 for the
  // Android device tested
  logDisplayCaps();
});

win.open();

logDisplayCaps();

xdpi

NumberAndroidread-only

Physical pixels per inch of the display in the X dimension.

ydpi

NumberAndroidread-only

Physical pixels per inch of the display in the Y dimension.

Methods 4

Inherited from Titanium.Proxy

Adds the specified callback as an event listener for the named event.

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to invoke when the event is fired.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

Inherited from Titanium.Proxy

Fires a synthesized event to any registered listeners.

Parameters
ParametersTypeDescription
nameString

Name of the event.

event?Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

Inherited from Titanium.Proxy

Removes the specified callback as an event listener for the named event.

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.