How to create Icon Packs for Go/Apex/Nova/Holo/ADW/Launcher Pro/Xperia Home Launchers
However, there are many guides on Apex Launcher, Nova. ADW but when someone starts, he finds himself rather confused on which launcher to start working with and then how to add support of other launchers in it.
I was confused too on how to create Holo Launcher icon pack, then I found out LauncherPro guide which worked on Holo Launcher. Then, I further went on adding launchers as people requested for my Metrosphere Icon Pack. I got great help from DSaif's guide here. Then, I took the Apex Sample Pack from here and added support of other launchers in it. You can check that guide if are further looking onto advanced options of icon packs in Apex or creating themes for Apex, this guide will concentrically based on Icon apk CreationYou can also add support of different launchers from there, but if you are lazy like me, then you can follow this guide which has a sample pack with support already added and I'll be guiding you on how to further add icons in it
I was confused too on how to create Holo Launcher icon pack, then I found out LauncherPro guide which worked on Holo Launcher. Then, I further went on adding launchers as people requested for my Metrosphere Icon Pack. I got great help from DSaif's guide here. Then, I took the Apex Sample Pack from here and added support of other launchers in it. You can check that guide if are further looking onto advanced options of icon packs in Apex or creating themes for Apex, this guide will concentrically based on Icon apk CreationYou can also add support of different launchers from there, but if you are lazy like me, then you can follow this guide which has a sample pack with support already added and I'll be guiding you on how to further add icons in it
Pre-Requisites
- Eclipse with ADT Plugin
- Icons which you want to add
- Time and Patience
Guide
1. Downloading the sample
Download the Sample Icon Pack Source zip from below and extract it in any accessible local directory.
2. Importing the Project
Now open Eclipse and select File>Import
A window will pop up, drop down the Android Category and select Existing Android Code Into Workspace and Click Next
It will ask you to chose the root directory. Browse to where you extracted the Sample Icon Pack
Click on OK. And select Copy projects into workspace and then click on Finish.
3. Renaming Package Name
Now, you'll see the IconProject dropdown in Package Explorer window in Eclipse.
Now, you want to rename your Icon Pack's Package name as desired. For that, right click on IconProject and select Android Tools>Rename Application Package, and type in the name you want and click OK.
Also, Expand the IconProject Folder by clicking on drop down button and then, expand src folder, and you'll see areeb.apex.metrosphere.iconpack named file. Right click on it and Choose Refractor>Rename and type in the same package name you typed in previously, and Click OK
Name, the above steps for renaming package name can be omitted if you have yourself replaced the name evrywhere manually such as mainactivity.java, AndroidManifest.xml, etc
4. Naming your Icon Pack and changing description
Now, go to /res/values/strings.xml and change the name of Icon Pack from Sample Icon Pack to anything you want
There are also description of theme, you contact info, etc that can be changed in strings.xml
In AndroidManifest.xml, you can change some more informations such as version number, etc
5. Adding icons to your icon pack-
Now, we will be adding our icons in the icon pack but first, some things to clear-
For Go, Holo, Nova, Apex or other launchers - iconbase, iconmask, iconupon pngs can be used to provide a uniform look across icons on the device (More info is provided in Apex Launcher Icon Pack Tutorial). If you don't want them, just go to /res/xml/appfilter.xml and delete these lines accordingly:
Code:
<iconback img1="iconback" />
<iconmask img1="iconmask" />
<iconupon img1="iconupon" />
Add all your icons in drawable-xdpi (x=xh,h,m,l) folder depending upon for which dpi you have created them. XHDPI are normally 144x144, and HDPI are mainly 90x90.
You don't need to resize your icons for different DPI. For let's say, you made HDPI icons, now, you don't have to resize them for MDPI or LDPI devices, android does it on it's own. But definitely, HDPI icons will look pixelated on XHDPI, so it's recommended to make icons of as high resolution as possible.
Once added in the folder, let's say drawable-hdpi, we'll start the renaming process.
Holo Launcher updated it's theming engine, so it's very easy to put icon names now
You can put any name for your icons like browser for Browser and opera_mini for Opera Mini. It's your choice. Now, keep in mind that your icons should only be in lower case and no character like .,?/\|:";<>{}][ etc should come in their name, only underscore _ is allowed
6.
I) Open /res/xml/drawable.xml and add all the new icon names in it in this format
Code:
<item drawable="opera_mini" />
<item drawable="browser" />
<item drawable="fruit_ninja" />
II) Open /res/values/iconpack.xml and add all the new icons in this format
Code:
<item>opera_mini</item>
<item>browser</item>
<item>fruit_ninja</item>
Order of icons in these xml decide the order of icons in Icon Selector
III)
Find ComponentInfo name first by going in activities.droidicon.com
Edit : Above site doesn't work as reported by many people. Here are some other sites:
http://xdaforums.com/showpost.php?p=54038742&postcount=369
Search your app name. For example Opera Mini. You'll get search results like this
Opera Mini
com.opera.mini.android
com.opera.mini.android.Browser
com_opera_mini_android_browser
com.opera.mini.android/com.opera.mini.android.Browser
The last name is what you want to get
Open /res/xml/appfilter.xml and add all new icons in this format
Code:
<item component="ComponentInfo{[COLOR=Red]com.mobint.hololauncher/com.mobint.hololauncher.Launcher[/COLOR]}" drawable="[COLOR=DeepSkyBlue]holo_launcher[/COLOR]" />
Code:
<item component="ComponentInfo{[COLOR=Red]com.opera.mini.android/com.opera.mini.android.Browser[/COLOR]}" drawable="[COLOR=DeepSkyBlue]opera_mini[/COLOR]" />
Code:
<item component="ComponentInfo{[COLOR=Red]com.opera.mini.android/com.opera.mini.android.Browser[/COLOR]}" drawable="[COLOR=DeepSkyBlue]opera_mini[/COLOR]" />
<item component="ComponentInfo{[COLOR=Red]com.android.browser/com.android.browser.BrowserActivity[/COLOR]}" drawable="[COLOR=DeepSkyBlue]browser[/COLOR]" />
<item component="ComponentInfo{[COLOR=Red]com.halfbrick.fruitninja/com.halfbrick.fruitninja.FruitNinjaActivity[/COLOR]}" drawable="[COLOR=DeepSkyBlue]fruit_ninja[/COLOR]" />
Some example from third xml, and how can we use it:
1. Applying single icons to many apps:
Here, same contacts has been applied to MANY apps that had different activity names in different devices.
2. Some miscellaneous examples of this code:
Here, same contacts has been applied to MANY apps that had different activity names in different devices.
Code:
<item component="ComponentInfo{com.android.contacts/com.android.contacts.DialtactsActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.activities.DialtactsActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.sec.android.app.contacts.DialerEntryActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.DialtactsContactsEntryActivityForDialpad}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.activities.TwelveKeyDialer}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.BbDialtactsMainFrameActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.DialtactsCallListEntryActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.DialtactsCallLogActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.DialtactsPhoneEntryActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.DialtactsRecentEntryActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.PhoneDialtactsActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.contacts/com.android.contacts.SmartDialerActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.htcdialer/com.android.htcdialer.Dialer}" drawable="com_android_contacts_dialtactsactivity" />
<item component="ComponentInfo{com.android.htccontacts/com.android.htccontacts.DialerTabActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.phone/com.android.phone.DialtactsCallLogActivity}" drawable="contacts" />
<item component="ComponentInfo{com.android.phone/com.android.phone.DialtactsContactsEntryActivity}" drawable="contacts" />
<item component="ComponentInfo{com.huawei.android.dialer/com.huawei.android.dialer.TwelveKeyDialer}" drawable="contacts" />
<item component="ComponentInfo{com.motorola.dialer/com.motorola.dialer.CallLogShortcut}" drawable="contacts" />
<item component="ComponentInfo{com.motorola.dialer/com.motorola.dialer.DialtactsContactsEntryActivity}" drawable="contacts" />
<item component="ComponentInfo{com.samsung.android.app.dialertab/com.samsung.android.app.dialertab.DialerTabActivity}" drawable="contacts" />
<item component="ComponentInfo{com.samsung.dialer/com.samsung.dialer.SplashScreen}" drawable="contacts" />
<item component="ComponentInfo{com.sec.android.app.dialertab/com.sec.android.app.dialertab.DialerTabActivity}" drawable="contacts" />
<item component="ComponentInfo{com.sonyericsson.android.socialphonebook/com.sonyericsson.android.socialphonebook.DialerEntryActivity}" drawable="contacts" />
Here, we have applied same icon to all Angry Birds icons. But, if we want different one for each, we can do that too:Code:<item component="ComponentInfo{com.rovio.angrybirds/com.rovio.fusion.App}" drawable="angry_birds" /> <item component="ComponentInfo{com.rovio.angrybirdsseasons/com.rovio.fusion.App}" drawable="angry_birds" /> <item component="ComponentInfo{com.rovio.angrybirdsspace.ads/com.rovio.fusion.App}" drawable="angry_birds" /> <item component="ComponentInfo{com.rovio.angrybirdsspace.premium/com.rovio.fusion.App}" drawable="angry_birds" /> <item component="ComponentInfo{com.rovio.angrybirdsstarwars.ads.iap/com.rovio.fusion.App}" drawable="angry_birds" /> <item component="ComponentInfo{com.rovio.angrybirdsstarwarshd.premium.iap/com.rovio.fusion.App}" drawable="angry_birds" />
Code:<item component="ComponentInfo{com.rovio.angrybirds/com.rovio.fusion.App}" drawable="angrybirds" /> <item component="ComponentInfo{com.rovio.angrybirdsseasons/com.rovio.fusion.App}" drawable="seasons" /> <item component="ComponentInfo{com.rovio.angrybirdsspace.ads/com.rovio.fusion.App}" drawable="space" /> <item component="ComponentInfo{com.rovio.angrybirdsspace.premium/com.rovio.fusion.App}" drawable="spacepre" /> <item component="ComponentInfo{com.rovio.angrybirdsstarwars.ads.iap/com.rovio.fusion.App}" drawable="stars" /> <item component="ComponentInfo{com.rovio.angrybirdsstarwarshd.premium.iap/com.rovio.fusion.App}" drawable="starshd" />
Code:<item component="ComponentInfo{eu.chainfire.supersu/eu.chainfire.supersu.MainActivity}" drawable="supersu" /> <item component="ComponentInfo{eu.chainfire.supersu/eu.chainfire.supersu.MainActivity[COLOR=Red]-[/COLOR]Emblem}" drawable="supersu" />
7. Testing your app
Once, this all process is complete, I hope many things would have become clear to you, now what you have to do is, test your app. For that,
Connect your phone to PC. Make sure USB Debugging is turned on (Omit, if you plan to use Emulator)
Click on the little drop down arrow and select Run Configurations...
Make sure, the project is same as your icon pack
Click on Run
Now, your device ADB ID will appear, or Emulator's if you are using it instead. Select it and Click on OK.
Your app will be installed accordingly, Test it thoroughly and on different launchers
8. Creating your app
When you have tested it thouroughly and want to make it an app, Select File>Export>Export Android Application and Select your IconProject.
Click on next and choose Create New Keystore and choose the location where you want it to be created. Enter any password you want.
Click next, now, enter any name you want in alias, password, set Validity to 25 years(your choice), First and Last Names. Other Fields are Optional.
You might want to remember those key location, alias and passwords for both as you will be signing upcoming updated of your icon pack with the same key so your fans don't have to uninstall older app before installing the new one
Click next, then choose where you want your app to be created and click on Finish
9. Enjoy
Download Sample Icon Pack Source
UPDATE
For those who can manage without a guide, I have created another source which has VPI Indicators in Icon Chooser.
I will write the guide after some time as I am busy nowadays, more information here
For those who can manage without a guide, I have created another source which has VPI Indicators in Icon Chooser.
I will write the guide after some time as I am busy nowadays, more information here
I am human and tend to make mistakes, please point out if you see any.
Feel free to ask any Questions
Credits
- DSaif
- dennisxl
- vanessaem
- the1dynasty
Last edited: