# Titanium.Platform.DisplayCaps

The Display Caps object returned by the displayCaps property.

Availability
0.8
0.8
9.2.0

# Overview

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

# apiName READONLY

Availability
3.2.0
3.2.0
9.2.0
apiName :String

The name of the API that this proxy corresponds to.

The value of this property is the fully qualified name of the API. For example, Titanium.UI.Button returns Ti.UI.Button.


# bubbleParent

Availability
3.0.0
3.0.0
9.2.0
bubbleParent :Boolean

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

Some proxies (most commonly views) have a relationship to other proxies, often established by the add() method. For example, for a button added to a window, a click event on the button would bubble up to the window. Other common parents are table sections to their rows, table views to their sections, and scrollable views to their views. Set this property to false to disable the bubbling to the proxy's parent.

Default: true


# density READONLY

Availability
0.8
0.8
9.2.0
density :String

Logical density of the display.


# dpi READONLY

Availability
0.8
0.8
9.2.0
dpi :Number

Display density expressed as dots-per-inch.


# lifecycleContainer

Availability
3.6.0

The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.

If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks will also be called on the proxy. Proxies that require the activity lifecycle will need this property set to the appropriate containing Window or TabGroup.


# logicalDensityFactor READONLY

Availability
0.8
3.4.1
9.2.0
logicalDensityFactor :Number

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 READONLY

Availability
0.8
0.8
9.2.0
platformHeight :Number

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 orientationModes. See example for clarification.


# platformWidth READONLY

Availability
0.8
0.8
9.2.0
platformWidth :Number

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 orientationModes. See example for clarification.


# xdpi READONLY

Availability
0.8
xdpi :Number

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


# ydpi READONLY

Availability
0.8
ydpi :Number

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

# Methods

# addEventListener

Availability
0.8
0.8
9.2.0
addEventListener(name, callback) void

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

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to invoke when the event is fired.

Returns

Type
void

# applyProperties

Availability
3.0.0
3.0.0
9.2.0
applyProperties(props) void

Applies the properties to the proxy.

Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that myproxy[key] = value.

Parameters

Name Type Description
props Dictionary

A dictionary of properties to apply.

Returns

Type
void

# fireEvent

Availability
0.8
0.8
9.2.0
fireEvent(name[, event]) void

Fires a synthesized event to any registered listeners.

Parameters

Name Type Description
name String

Name of the event.

event Dictionary

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

Returns

Type
void

# removeEventListener

Availability
0.8
0.8
9.2.0
removeEventListener(name, callback) void

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

Multiple listeners can be registered for the same event, so the callback parameter is used to determine which listener to remove.

When adding a listener, you must save a reference to the callback function in order to remove the listener later:

var listener = function() { Ti.API.info("Event listener called."); }
window.addEventListener('click', listener);

To remove the listener, pass in a reference to the callback function:

window.removeEventListener('click', listener);

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

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

Returns

Type
void