I get a lot of requests in my application to allow for custom icons packs from BetterCut / Open Home. The way it seems to work is you install BetterCut or Open Home, then y
To get the base /assets folder you need to use the AssetsManager to list the directory with just quotes:
AssetManager am = this.getAssets();
String[] names = am.list("");
There will be some additional files listed: images, sounds, webkit, maybe others. You can ignore these directories, they are part of the frameworks assets directory. This is a quote from groups.google.com:
Currently the asset manager merges the asset directory from the framework resources along with your own files placed in "assets". We should probably change this behavior (it was part of an old resource/ localization model), but it doesn't do much damage except that you see more files/directories in your own assets than you might expect. Any of your files that are the same as one in the framework assets will be used instead, when accessed through your AssetManager.
You can also list a subfolder inside the assets directory and do not need any slashes:
String[] names= am.list("subfolder");
Note that I did not include "/assets" in the filename.
Finally once you have your list of files you can load them in like:
InputStream in = am.open("file.png");
That will load in a file in the base assets folder. Or you can load a file in a subfolder like this:
InputStream in = am.open("subfolder/file.png");
If you need to load those pngs into a Bitmap you can also do the following:
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);