page.title=Screen Sizes and Densities
@jd:body

<style type="text/css">

div.dashboard-panel {
  max-width:1000px;
  margin:0 0 2em 0;
  padding:20px 20px 0 20px;
  border:1px solid #d3ecf5;
  border-radius:7px;
  -moz-border-radius:7px;
  -webkit-border-radius:7px;
  background-color: #DAF3FC;
  box-shadow:2px 3px 1px #eee;
  -moz-box-shadow:2px 3px 1px #eee;
  -webkit-box-shadow:2px 3px 1px #eee;
  overflow:hidden;
}
#jd-content div.dashboard-panel img {
  margin:0 20px 20px 0;
  padding:0;
  border:1px solid #ccc;
  float:left;
}
#jd-content div.dashboard-panel table {
  margin:0 0 20px 0;
  float:left;
  background-color:#fff;
}
div.dashboard-panel p {
  clear:left;
}
div.dashboard-panel th {
  white-space:nowrap;
}
</style>

<p> This page provides data about the relative number of active devices that have a particular
screen configuration, defined by a combination of screen size and density. To simplify the way that
you design your user interfaces for different screen configurations, Android divides the range of
actual screen sizes and densities into:</p> 
 
<ul> 
<li>A set of four generalized <strong>sizes</strong>: <em>small</em>, <em>normal</em>,
<em>large</em>, and <em>xlarge</em></em></li>
<li>A set of four generalized <strong>densities</strong>: <em>ldpi</em> (low), <em>mdpi</em>
(medium), <em>hdpi</em> (high), and <em>xhdpi</em> (extra high)</li>
</ul> 

<p>For information about how you can support multiple screen configurations in your
application, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
Screens</a>.</p>

<p class="note"><strong>Note:</strong> This data is based on the number
of Android devices that have accessed Android Market within a 7-day period
ending on the data collection date noted below.</p>


<div class="dashboard-panel">

<img alt="" width="400" height="250"
src="http://chart.googleapis.com/chart?cht=p&chs=400x250&chco=c4df9b,6fad0c&chl=Xlarge%20/%20mdpi|Large%20/%20ldpi|Large%20/%20mdpi|Normal%20/%20hdpi|Normal%20/%20ldpi|Normal%20/%20mdpi|Normal%20/%20xhdpi|Small%20/%20hdpi|Small%20/%20ldpi&chd=t%3A4.9,0.2,2.8,66.4,0.7,18.5,2.5,2.4,1.7" />

<table>
<tr>
<th></th>
<th scope="col">ldpi</th>
<th scope="col">mdpi</th>
<th scope="col">hdpi</th>
<th scope="col">xhdpi</th>
</tr>
<tr><th scope="row">small</th> 
<td>1.7%</td>     <!-- small/ldpi -->
<td></td>     <!-- small/mdpi -->
<td>2.4%</td> <!-- small/hdpi -->
<td></td>     <!-- small/xhdpi -->
</tr> 
<tr><th scope="row">normal</th> 
<td>0.7%</td>  <!-- normal/ldpi -->
<td>18.5%</td> <!-- normal/mdpi -->
<td>66.3%</td> <!-- normal/hdpi -->
<td>2.5%</td>      <!-- normal/xhdpi -->
</tr> 
<tr><th scope="row">large</th> 
<td>0.2%</td>     <!-- large/ldpi -->
<td>2.8%</td> <!-- large/mdpi -->
<td></td>     <!-- large/hdpi -->
<td></td>     <!-- large/xhdpi -->
</tr> 
<tr><th scope="row">xlarge</th> 
<td></td>     <!-- xlarge/ldpi -->
<td>4.9%</td> <!-- xlarge/mdpi -->
<td></td>     <!-- xlarge/hdpi -->
<td></td>     <!-- xlarge/xhdpi -->
</tr> 
</table>

<p><em>Data collected during a 7-day period ending on March 4, 2012</em></p>
</div>

