blob: 07b73bb59251625361e8963afaedbbd7501cad38 [file] [log] [blame]
Roman Nurikd602b352010-10-17 21:33:05 -07001page.title=Icon Design Guidelines
2parent.title=UI Guidelines
3parent.link=index.html
Dirk Doughertyf3043db2009-05-26 08:40:42 -07004@jd:body
5
6<div id="qv-wrapper">
7<div id="qv">
8
Scott Mainec80d7f2010-09-24 16:17:27 -07009<h2>Quickview</h2>
Dirk Doughertyf3043db2009-05-26 08:40:42 -070010
11<ul>
12<li>You can use several types of icons in an Android application.</li>
Dirk Dougherty59e644e2010-03-24 17:45:02 -070013<li>Your icons should follow the general specification in this document.</li>
14<li>You should create separate icon sets for high-, medium-, and low-density screens.</li>
Dirk Doughertyf3043db2009-05-26 08:40:42 -070015</ul>
16
17<h2>In this document</h2>
18
19<ol>
Dirk Doughertyf3043db2009-05-26 08:40:42 -070020<li><a href="#templatespack">Using the Icon Templates Pack</a></li>
Roman Nurikd602b352010-10-17 21:33:05 -070021<li><a href="#icon-sets">Providing Density-Specific Icon Sets</a></li>
22<li><a href="#design-tips">Tips for Designers</a></li>
Dirk Doughertyf3043db2009-05-26 08:40:42 -070023</ol>
24
Roman Nurikd602b352010-10-17 21:33:05 -070025<h2>Topics</h2>
Dirk Dougherty59e644e2010-03-24 17:45:02 -070026
27<ol>
Roman Nurikd602b352010-10-17 21:33:05 -070028<li><a href="icon_design_launcher.html">Launcher Icons</a></li>
29<li><a href="icon_design_menu.html">Menu Icons</a></li>
30<li><a href="icon_design_status_bar.html">Status Bar Icons</a></li>
31<li><a href="icon_design_tab.html">Tab Icons</a></li>
32<li><a href="icon_design_dialog.html">Dialog Icons</a></li>
33<li><a href="icon_design_list.html">List View Icons</a></li>
Scott Mainec80d7f2010-09-24 16:17:27 -070034</ol>
35
36<h2>Downloads</h2>
37
38<ol>
Roman Nurikced7edd2011-09-28 13:01:20 -070039<li><a href="{@docRoot}shareables/icon_templates-v4.0.zip">Android Icon
40Templates Pack, v4.0 &raquo;</a></li>
Roman Nurikd602b352010-10-17 21:33:05 -070041<li><a href="{@docRoot}shareables/icon_templates-v2.3.zip">Android Icon
42Templates Pack, v2.3 &raquo;</a></li>
Scott Mainec80d7f2010-09-24 16:17:27 -070043<li><a href="{@docRoot}shareables/icon_templates-v2.0.zip">Android Icon
44Templates Pack, v2.0 &raquo;</a></li>
Dirk Dougherty59e644e2010-03-24 17:45:02 -070045<li><a href="{@docRoot}shareables/icon_templates-v1.0.zip">Android Icon
46Templates Pack, v1.0 &raquo;</a></li>
47</ol>
48
Scott Mainec80d7f2010-09-24 16:17:27 -070049<h2>See also</h2>
50
51<ol>
52<li><a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
53Screens</a></li>
54</ol>
55
Dirk Dougherty59e644e2010-03-24 17:45:02 -070056
Dirk Doughertyf3043db2009-05-26 08:40:42 -070057</div>
58</div>
59
60<p>Creating a unified look and feel throughout a user interface adds value to
61your product. Streamlining the graphic style will also make the UI seem more
Dirk Dougherty59e644e2010-03-24 17:45:02 -070062professional to users.</p>
Dirk Doughertyf3043db2009-05-26 08:40:42 -070063
Dirk Dougherty59e644e2010-03-24 17:45:02 -070064<p>This document provides information to help you create icons for various parts
65of your application’s user interface that match the general styles used by the
66Android 2.x framework. Following these guidelines will help you to create a
67polished and unified experience for the user.</p>
Dirk Doughertyf3043db2009-05-26 08:40:42 -070068
Roman Nurikd602b352010-10-17 21:33:05 -070069<p>The following documents discuss detailed guidelines for the common types of
70icons used throughout Android applications:</p>
71
72<dl>
73 <dt><strong><a href="icon_design_launcher.html">Launcher Icons</a></strong></dt>
74 <dd>A Launcher icon is a graphic that represents your application on the
75 device's Home screen and in the Launcher window.</dd>
76 <dt><strong><a href="icon_design_menu.html">Menu Icons</a></strong></dt>
77 <dd>Menu icons are graphical elements placed in the options menu shown to
78 users when they press the Menu button.</dd>
Roman Nurikced7edd2011-09-28 13:01:20 -070079 <dt><strong><a href="icon_design_action_bar.html">Action Bar Icons</a>
80 <span class="new">new!</span></strong></dt>
81 <dd>Action Bar icons are graphical elements representing action items in the
82 <a href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a>.</dd>
Roman Nurikd602b352010-10-17 21:33:05 -070083 <dt><strong><a href="icon_design_status_bar.html">Status Bar Icons</a></strong></dt>
84 <dd>Status bar icons are used to represent notifications from your
85 application in the status bar.</dd>
86 <dt><strong><a href="icon_design_tab.html">Tab Icons</a></strong></dt>
87 <dd>Tab icons are graphical elements used to represent individual tabs in a
88 multi-tab interface.</dd>
89 <dt><strong><a href="icon_design_dialog.html">Dialog Icons</a></strong></dt>
90 <dd>Dialog icons are shown in pop-up dialog boxes that prompt the user for
91 interaction.</dd>
92 <dt><strong><a href="icon_design_list.html">List View Icons</a></strong></dt>
93 <dd>List view icons are used with {@link android.widget.ListView} to
94 graphically represent list items. An example is the Settings application.</dd>
95</dl>
96
Dirk Dougherty59e644e2010-03-24 17:45:02 -070097<p>To get started creating your icons more quickly, you can download
Roman Nurikd602b352010-10-17 21:33:05 -070098the Android Icon Templates Pack.</p>
99
100
101
102
103
104<h2 id="templatespack">Using the Android Icon Templates Pack</h2>
105
106<p>The Android Icon Templates Pack is a collection of template designs,
107textures, and layer styles that make it easier for you to create icons that
108conform to the guidelines given in this document. We recommend downloading the
109template pack archive before you start designing your icons.</p>
110
111<p>The icon templates are provided in the Adobe Photoshop file format (.psd),
112which preserves the layers and design treatments we used when creating the
113standard icons for the Android platform. You can load the template files into
114any compatible image-editing program, although your ability to work directly
115with the layers and treatments may vary based on the program you are using.</p>
116
117<p>You can obtain the latest Icon Templates Pack archive using the link below:
118</p>
119
120<p style="margin-left:2em"><a
Roman Nurikced7edd2011-09-28 13:01:20 -0700121href="{@docRoot}shareables/icon_templates-v4.0.zip">Download the Icon Templates
122Pack for Android 4.0 &raquo;</a>
Roman Nurikd602b352010-10-17 21:33:05 -0700123
124<p>For previous versions of the Icon Templates Pack, see the <em>Downloads</em>
125section in the box at the top-right corner of this page.</p>
126
127
128
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700129
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700130
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700131<h2 id="icon-sets">Providing Density-Specific Icon Sets</h2>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700132
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700133<p>Android is designed to run on a variety of devices that offer a range of
134screen sizes and resolutions. When you design the icons for your application,
135it's important keep in mind that your application may be installed on any of
136those devices. As described in the <a
137href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
138Screens</a> document, the Android platform makes it straightforward for you to
139provide icons in such a way that they will be displayed properly on any device,
140regardless of the device's screen size or resolution.</p>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700141
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700142<p>In general, the recommended approach is to create a separate set of icons for
Roman Nurikced7edd2011-09-28 13:01:20 -0700143each generalized screen density. Then,
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700144store them in density-specific resource directories in your application. When
145your application runs, the Android platform will check the characteristics of
146the device screen and load icons from the appropriate density-specific
147resources. For more information about how to store density-specific resources in
148your application, see <a
149href="{@docRoot}guide/practices/screens_support.html#qualifiers">Resource
150directory qualifiers for screen size and density</a>. </p>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700151
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700152<p>For tips on how to create and manage icon sets for multiple densities, see
Roman Nurikd602b352010-10-17 21:33:05 -0700153<a href="#design-tips">Tips for Designers</a>.</p>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700154
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700155
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700156
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700157
Roman Nurikd602b352010-10-17 21:33:05 -0700158<h2 id="design-tips">Tips for Designers</h2>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700159
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700160<p>Here are some tips that you might find useful as you develop icons or other
161drawable assets for your application. The tips assume that you are using
Roman Nurikd602b352010-10-17 21:33:05 -0700162Adobe Photoshop or a similar raster and vector image-editing program.</p>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700163
Roman Nurikd602b352010-10-17 21:33:05 -0700164<h3>Use common naming conventions for icon assets</h3>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700165
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700166<p>Try to name files so that related assets will group together inside a
167directory when they are sorted alphabetically. In particular, it helps to use a
168common prefix for each icon type. For example:</p>
169
170<table>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700171<tr>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700172<th>Asset Type</th>
173<th>Prefix</th>
174<th>Example</th>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700175</tr>
176<tr>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700177<td>Icons</td>
178<td><code>ic_</code></td>
179<td><code>ic_star.png</code></td>
180</tr>
181<tr>
182<td>Launcher icons</td>
183<td><code>ic_launcher</code></td>
184<td><code>ic_launcher_calendar.png</code></td>
185</tr>
186<tr>
Roman Nurikced7edd2011-09-28 13:01:20 -0700187<td>Menu icons and Action Bar icons</td>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700188<td><code>ic_menu</code></td>
189<td><code>ic_menu_archive.png</code></td>
190</tr>
191<tr>
192<td>Status bar icons</td>
Roman Nurikd602b352010-10-17 21:33:05 -0700193<td><code>ic_stat_notify</code></td>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700194<td><code>ic_stat_notify_msg.png</code></td>
195</tr>
196<tr>
197<td>Tab icons</td>
198<td><code>ic_tab</code></td>
199<td><code>ic_tab_recent.png</code></td>
200</tr>
201<tr>
202<td>Dialog icons</td>
203<td><code>ic_dialog</code></td>
204<td><code>ic_dialog_info.png</code></td>
205</tr>
Dirk Doughertyf3043db2009-05-26 08:40:42 -0700206</table>
207
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700208<p>Note that you are not required to use a shared prefix of any type &mdash;
209doing so is for your convenience only.</p>
210
211
Roman Nurikd602b352010-10-17 21:33:05 -0700212<h3>Set up a working space that organizes files for multiple densities</h3>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700213
Roman Nurikd602b352010-10-17 21:33:05 -0700214<p>Supporting multiple screen densities means you must create multiple versions
215of the same icon. To help keep the multiple copies of files safe and easier to
216find, we recommend creating a directory structure in your working space that
217organizes asset files per resolution. For example:</p>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700218
Roman Nurikced7edd2011-09-28 13:01:20 -0700219<pre>art/...
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700220 ldpi/...
221 _pre_production/...
222 <em>working_file</em>.psd
223 <em>finished_asset</em>.png
224 mdpi/...
225 _pre_production/...
226 <em>working_file</em>.psd
227 <em>finished_asset</em>.png
228 hdpi/...
229 _pre_production/...
230 <em>working_file</em>.psd
Roman Nurikced7edd2011-09-28 13:01:20 -0700231 <em>finished_asset</em>.png
232 xhdpi/...
233 _pre_production/...
234 <em>working_file</em>.psd
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700235 <em>finished_asset</em>.png</pre>
236
237<p>This structure parallels the density-specific structure in which you will
238ultimately store the finished assets in your application's resources. Because
239the structure in your working space is similar to that of the application, you
240can quickly determine which assets should be copied to each application
241resources directory. Separating assets by density also helps you detect any
242variances in filenames across densities, which is important because
243corresponding assets for different densities must share the same filename.</p>
244
245<p>For comparison, here's the resources directory structure of a typical
246application: </p>
247
248<pre>res/...
249 drawable-ldpi/...
250 <em>finished_asset</em>.png
251 drawable-mdpi/...
252 <em>finished_asset</em>.png
253 drawable-hdpi/...
Roman Nurikced7edd2011-09-28 13:01:20 -0700254 <em>finished_asset</em>.png
255 drawable-xhdpi/...
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700256 <em>finished_asset</em>.png</pre>
257
258
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700259
Roman Nurikd602b352010-10-17 21:33:05 -0700260<h3>Use vector shapes where possible</h3>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700261
Roman Nurikd602b352010-10-17 21:33:05 -0700262<p>Many image-editing programs such as Adobe Photoshop allow you to use a
263combination of vector shapes and raster layers and effects. When possible,
264use vector shapes so that if the need arises, assets can be scaled up without
265loss of detail and edge crispness.</p>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700266
Roman Nurikd602b352010-10-17 21:33:05 -0700267<p>Using vectors also makes it easy to align edges and corners to pixel
268boundaries at smaller resolutions.</li>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700269
270
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700271
Roman Nurikd602b352010-10-17 21:33:05 -0700272<h3>Start with large artboards</h3>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700273
Roman Nurikced7edd2011-09-28 13:01:20 -0700274<p>Because you will need to create assets for different screen densities,
275it is best to start your icon
Roman Nurikd602b352010-10-17 21:33:05 -0700276designs on large artboards with dimensions that are multiples of the target icon
277sizes. For example, <a
278href="{@docRoot}guide/practices/ui_guidelines/icon_design_launcher.html">launcher
Roman Nurikced7edd2011-09-28 13:01:20 -0700279icons</a> are 96, 72, 48, or 36 pixels wide, depending on screen density. If you
Roman Nurikd602b352010-10-17 21:33:05 -0700280initially draw launcher icons on an 864x864 artboard, it will be easier and
281cleaner to tweak the icons when you scale the artboard down to the target
282sizes for final asset creation.</p>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700283
Roman Nurikd602b352010-10-17 21:33:05 -0700284
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700285
Roman Nurikd602b352010-10-17 21:33:05 -0700286<h3>When scaling, redraw bitmap layers as needed</h3>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700287
288<p>If you scaled an image up from a bitmap layer, rather than from a vector
Roman Nurikd602b352010-10-17 21:33:05 -0700289layer, those layers will need to be redrawn manually to appear crisp at higher
290densities. For example if a 60x60 circle was painted as a bitmap for
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700291<code>mdpi</code> it will need to be repainted as a 90x90 circle for
292<code>hdpi</code>.</p>
293
294
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700295
Roman Nurikd602b352010-10-17 21:33:05 -0700296<h3>When saving image assets, remove unnecessary metadata</h3>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700297
Roman Nurikced7edd2011-09-28 13:01:20 -0700298<p>Although the Android SDK tools will automatically compress PNGs when packaging
299application resources into the application binary, a good practice is to remove
300unnecessary headers and metadata from your PNG assets. Tools such as <a
Roman Nurikd602b352010-10-17 21:33:05 -0700301href="http://optipng.sourceforge.net/">OptiPNG</a> or <a
Roman Nurikced7edd2011-09-28 13:01:20 -0700302href="http://pmt.sourceforge.net/pngcrush/">Pngcrush</a> can ensure that this
303metadata is removed and that your image asset file sizes are optimized.</p>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700304
Roman Nurikd602b352010-10-17 21:33:05 -0700305
306
307<h3>Make sure that corresponding assets for different densities use the same
308filenames</h3>
309
310<p>Corresponding icon asset files for each density <strong>must use the same
311filename</strong>, but be stored in density-specific resource directories. This
312allows the system to look up and load the proper resource according to the
313screen characteristics of the device. For this reason, make sure that the set of
314assets in each directory is consistent and that the files do not use
315density-specific suffixes.</p>
316
317<p>For more information about density-specific resources
318and how the system uses them to meet the needs of different devices, see <a
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700319href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
Dirk Doughertyfe1ffc32010-04-01 09:50:15 -0700320Screens</a>.</p>
Dirk Dougherty59e644e2010-03-24 17:45:02 -0700321