The Android Asset Studio
web app by Roman Nurik is a great resource for creating icons for your Android applications.
We now support the same functionality directly within the Android Eclipse plugin. First, when you open the New wizard (Ctrl-N) the Android category contains a new item: "Android Icon Set":
Alternatively, the "Resource Chooser" (which is for example invoked when you drop an Image into a layout, or when you use the context menu to customize a @drawable property such as "Background") also contains a button link to it - note the button in the dialog:
When you invoke the Android Icon Set wizard, you first get the type chooser page:
Here, you choose what type of icons to create, and a resource name for the drawable that will be created.
If you choose to create a launcher icon and hit Next you'll see the following page:
There's a lot going on here. First, on the right you'll see a live preview of the icon we're in the process of creating. As you can see, it will create multiple icons for different screen resolutions, so that's why we're referring to an "icon set" instead of just an "icon". In addition to the ones shown above, for launcher icons we also create a high-resolution "web" version of the icon which you might want to use when you upload your app to the Android Market:
This icon looks glossier than the images shown in the preview above. You can turn on the glossy icon style with one of the controls on the page:
You can configure the background shape, the font used for the text, the colors, etc:
However, using text in icons like this is not going to produce great icons; this is just a shortcut to get something preliminary in place. Notice how the radio buttons at the top have three options:
Ideally you'll use your own "basic" image (or if necessary one of the clipart images), and then use the Asset Studio Wizard to generate suitable icons from it.
"Why would I need to use an icon generator when I have already drawn the icon myself?" you might ask. The reason for that is that different versions of Android, as well as different themes, often imply different effects, colors and styles for the icons. Here for example I'm generating icons for the status/notifications bar:
Here the base image is simply a black and white Bugdroid image, yet we're generating different style icons for Gingerbread (v9), Honeycomb (v11), and older versions. When generating ActionBar icons, the Asset Studio Wizard will generate different icons for the light and dark Holo themes. And when generating icons for tabs, notice that it generates different styles for "selected" versus "unselected" tabs, and again it also makes different icons for Android versions older than v5 (Android 2.0):
One of the advantages of using the integrated version of Asset Studio is that when you hit the Finish button in the wizard, the icons are written directly into your current project - no need to download a separate bundle from the web app and extract it in the right place. It will also ask you to confirm overwrites when there are existing icon filename conflicts. And if you invoked the wizard from the Resource Chooser's "Create Icon..." button, then the newly created icon will be selected in the chooser.
When you exit the wizard, the Package Explorer will update itself to select the newly created icons:
A second advantage to the integration with ADT is that we know the minimum
SDK target for your project, and we can use that information to only generate the necessary icons! So if you for example are writing an app that targets Android 2.0 and higher, then when generating Tab icons we don't need to generate the older style icons, and in particular we don't need to name the drawable folder
and so on; the icons can generate directly into the
We hope this is going to make it easier to create good looking applications. Please don't abuse the text-feature :-) We still need to get clipart contributed into the AOSP such that we can bundle it with the wizard, so if you're artistically inclined we'd love your contributions! (As usual, see the contributing pages
Thanks to Roman Nurik for not only writing the original web app but for helping with the porting to ADT as well!