summaryrefslogtreecommitdiffstats
path: root/docs/html/guide/topics/manifest/supports-screens-element.jd
blob: ee99a3706349c6e66c13383512f22dcabc18050b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
page.title=<supports-screens>
parent.title=The AndroidManifest.xml File
parent.link=manifest-intro.html
@jd:body

<dl class="xml">

<dt>syntax:</dt>
<dd>
<pre class="stx">
&lt;supports-screens android:<a href="#resizeable">resizeable</a>=["true" | "false"]
                  android:<a href="#small">smallScreens</a>=["true" | "false"] 
                  android:<a href="#normal">normalScreens</a>=["true" | "false"] 
                  android:<a href="#large">largeScreens</a>=["true" | "false"] 
                  android:<a href="#xlarge">xlargeScreens</a>=["true" | "false"]
                  android:<a href="#any">anyDensity</a>=["true" | "false"] /&gt;
</pre>
</dd>

<dt>contained in:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code></dd>

<dt>description:</dt>
<dd>Lets you specify the screen dimensions the
application supports.  By default, a modern application (using API Level 4 or higher) supports all
screen sizes; older applications are assumed to support only the "normal" screen size. Screen
size is determined as the available pixels to an application after density scaling has been
applied. (Note that screen size is a separate axis from screen density.)

<p>An application "supports" a given screen size if it fills the entire screen and works as
expected. By default, the system will resize your application to fill the screen, if you have set
either <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
minSdkVersion}</a> or <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
targetSdkVersion}</a> to {@code "4"} or higher. Resizing works well for most applications and
you don't have to do any extra work to make your application work on larger screens.</p>

<p>In addition to allowing the system to resize your application, you can add additional support
for different screen sizes by providing <a
href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">alternative
layout resources</a> for different sizes. For instance, you might want to modify the layout
of an activity when it is on a tablet or similar device that has an <em>xlarge</em> screen.</p>

<p>If your application does not support <em>large</em> or <em>xlarge</em> screens, then you should
declare that it is not resizeable by setting <a href="#resizeable">{@code android:resizeable}</a> to
{@code "false"}, so that the system will not resize your application on larger screens.</p>

<p>If your application does not support <em>small</em> screens, then
there isn't much the system can do to make the application work well on a smaller screen, so
external services (such as Android Market) should not allow users to install the application on such
screens.</p>


<p>For more information, see 
<a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>


<dt>attributes:</dt>

<dd>
<dl class="attr">
  
  <dt><a name="resizeable"></a>{@code android:resizeable}</dt>
  <dd>Indicates whether the application is resizeable for different screen sizes. This attribute is
true, by default, if you have set either <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> or <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
{@code "4"} or higher. Otherwise, it is false by default. If set false, the system will not resize
your application when run on <em>large</em> or <em>xlarge</em> screens. Instead, the
application appears in a "postage stamp" that equals the <em>normal</em> screen size that your
application does support. This is less than an ideal experience for users, because the
application appears smaller than the available screen, but it might help your application run
normally if it were designed only for the <em>normal</em> screen size and some behaviors do not work
when resized.</p>
  <p>To provide the best experience on all screen sizes, you should allow resizing and, if your
application does not work well on larger screens, follow the guide to <a
href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a> to enable
additional screen support.</p>
  </dd>
  
  
  <dt><a name="small"></a>{@code android:smallScreens}</dt>
  <dd>Indicates whether the application supports smaller screen form-factors.
     A small screen is defined as one with a smaller aspect ratio than
     the "normal" (traditional HVGA) screen.  An application that does
     not support small screens <em>will not be available</em> for
     small screen devices from external services (such as Android Market), because there is little
the platform can do
     to make such an application work on a smaller screen. If the application has set either <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> or <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
{@code "4"} or higher,
the default value for this is {@code "true"}, any value less than {@code "4"} results in this set to
{@code "false"}.
  </dd>
  
  <dt><a name="normal"></a>{@code android:normalScreens}</dt>
  <dd>Indicates whether an application supports the "normal" screen
     form-factors.  Traditionally this is an HVGA medium density
     screen, but WQVGA low density and WVGA high density are also
     considered to be normal.  This attribute is "true" by default,
     and applications currently should leave it that way.
  </dd>
  
  <dt><a name="large"></a>{@code android:largeScreens}</dt>
  <dd>Indicates whether the application supports larger screen form-factors.
     A large screen is defined as a screen that is significantly larger
     than a "normal" phone screen, and thus might require some special care
     on the application's part to make good use of it, though it may rely on resizing by the
system to fill the screen. If the application has set either <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> or <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
{@code "4"} or higher,
the default value for this is {@code "true"}, any value less than {@code "4"} results in this set to
{@code "false"}.
  </dd>

  <dt><a name="xlarge"></a>{@code android:xlargeScreens}</dt>
  <dd>Indicates whether the application supports extra large screen form-factors.
     An xlarge screen is defined as a screen that is significantly larger
     than a "large" screen, such as a tablet (or something larger) and may require special care
     on the application's part to make good use of it, though it may rely on resizing by the
system to fill the screen. If the application has set either <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> or <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
{@code "4"} or higher,
the default value for this is {@code "true"}, any value less than {@code "4"} results in this set to
{@code "false"}.
     <p>This attribute was introduced in API Level 9.</p>
  </dd>
  
  <dt><a name="any"></a>{@code android:anyDensity}</dt>
  <dd>Indicates whether the application includes resources to accommodate any screen
     density.  Older applications (before API Level 4) are assumed unable to
     accomodate all densities and this is {@code "false"} by default. If the application has set
either <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> or <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
{@code "4"} or higher,
the default value for this is {@code "true"}. Otherwise, it is {@code "false"}.
     You can explicitly supply your abilities here.
     <p>Based on the "standard" device screen density (medium dpi), the Android framework will scale
down application assets by a factor of 0.75 (low dpi screens) or scale them up by a factor of 1.5
(high dpi screens), when you don't provide alternative resources for a specifc screen density. The
screen density is expressed as dots-per-inch (dpi).</p>
  </dd>
  

</dl></dd>

<!-- ##api level indication## -->
<dt>introduced in:</dt>
<dd>API Level 4</dd>

<dt>see also:</dt>
<dd>
  <ul>
    <li><a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
Screens</a></li>
    <li>{@link android.util.DisplayMetrics}</li>
  </ul>
</dd>

</dl>