[Android Themes] twistedumbrella:
I found quite a few themes, but the original creators don't provide a guide, or leave you to decompile theirs which seems to cause issues with a rebuilt version. In light of this, I will provide a guide on the easy process of developing a theme for TSF Shell.

You will need Eclipse and all the usual Android app development stuff installed. This guide will not be covering that aspect.

Set up a basic app, you also need to include an empty activity. This part is not overly important.

AndroidManifest.xml

Your empty activity needs to specify that it is a theme

<intent-filter>
...
<action android:name="com.tsf.shell.themes" />
...
</intent-filter>

You will need an assets folder, which will be the base of your theme. It will include:

A subfolder named theme, with subfolders preview, widget, shell, and icon. These will be where the theme parts go.

PreviewDescription.xml

<?xml version="1.0" encoding="utf-8"?>
<theme>
<version value="1" />
<info date="CREATION_DATE" author="YOUR_NAME" name="THEME_NAME"/>
<preview frontcover="IMAGE_FOR_THEME_ICON">
<item image="PREVIEW_IMAGE" />
<item image="PREVIEW_IMAGE" />
<item image="PREVIEW_IMAGE" />
</preview>
</theme>

The capitalized words should be replaced by the file names of the files that will be placed in the preview folder. These file names can be whatever you like, as long as they match the values listed here.

The widget folder is somewhat specific. It contains a subfolder named "com.tsf.shell.widget.folder" with the files "widget_folder_bg.png", "widget_folder_front.png", and "widget_folder_icon.png" which should be replaced by the images you want for each of these items.

ThemeDesription.xml

<?xml version="1.0" encoding="utf-8"?>
<theme>
<version value="1" />
<icon-default scale="0.70" leftOffset="0" rightOffset="0"
topOffset="0" bottomOffset="0">
<item image="default" />
<item image="default2" />
<item image="default3" />
<item image="default4" />
<item image="default5" />
</icon-default>
<icon-filter>

<item component="com.android.vending/com.android.vending.AssetBrowserActivity"
image="gplay" />
<item component="com.android.vending/com.google.android.finsky.activities.PlayLauncherActivity"
image="gplay" />

<item component="com.android.mms/com.android.mms.ui.ConversationList"
image="messaging" />

</icon-filter>
<widget>
<item type="widget_system_folder">
<icon image="widget_folder_icon"/>
<nameText size="14" color="#FF333333" x="20" y="-6" width="86" height="23"/>
<sizeText size="14" color="#FF99CC00" colorFull="#FFFF3300" width="16" height="20" x="101" y="9"/>
<frame image="widget_folder_windows_bg"/>
<order>
<backPlane x="0" y="17" width="128" height="32" image="widget_folder_bg"/>
<childContainer x="0" y="-23"/>
<frontPlane x="0" y="-31" width="128" height="64" image="widget_folder_front"/>
<textPlane x="0" y="-43" width="128" height="32"/>
<cachePlane width="128" height="128"/>
</order>
<child>
<item x="0" y="-5" z="0" rx="0" ry="0" rz="0" sx="1" sy="1" sz="1" />
<item x="-2" y="5" z="0" rx="0" ry="0" rz="-20" sx="1" sy="1" sz="1" />
<item x="5" y="15" z="0" rx="0" ry="0" rz="20" sx="1" sy="1" sz="1" />
</child>
</item>
</widget>
<shell>
<pageController image="page_controller_miui_w"/>
<pageControllerIndicator image="page_controller_indicator_miui_w" offsetX="14" offsetY="7" angleUnit="23" angleOffset="1"/>
<deleteController imageOpen="control_del_open_miui_w" imageClose="control_del_close_miui_w"/>
<menu toolButton="menu_tool_button_miui_w" themeButton="menu_theme_button_miui_w" userButton="menu_user_button_miui_w" settingButton="menu_setting_button_miui_w" bg="menu_bg_miui_w" bgOffsetX="1" />
<applicationPage effectButton="application_page_effect_button_miui_w"
nvPoint="application_page_nv_point" />
<pagePreview select="shell_select_page_bg_select_miui_w"
unselect="shell_select_page_bg_unselect_w" transitionButton="application_transition_button_miui" />
<transitionButton image="application_transition_button_miui" />
<linePickerMenu image="shell_picker_menu_item_miui_w" notic="shell_picker_menu_item_text_bg_miui_w" />
<interactiveArrange bg="shell_interactive_grid_bg_miui_w"
scaleButton="shell_interactive_grid_scale_button_miui_w" />
<publicButton close="public_button_close_miui_w" return="public_button_return_miui_w" />
<app multiChoice="shell_multi_choice_miui" />
</shell>
<wallpaper default="1">
<item image="wallpaper1" thumb="wallpaper1_thumb" />
<item image="wallpaper2" thumb="wallpaper2_thumb" />
<item image="wallpaper3" thumb="wallpaper3_thumb" />
<item image="wallpaper4" thumb="wallpaper4_thumb" />
</wallpaper>
</theme>

The above is an excerpt from an existing theme to help you determine what goes where. The important parts are icon-default scale="0.70" which is the size of the original icon that will be placed within the "generic" background, which is specified by the item image values within the icon-default class. Everything surrounds the ThemeDescription, so if you want to change something, this is usually where.

Back to the icon and shell folders. This is where you will place images you want used for each app and the parts of the interface. How the theme will handle missing icons was covered by the theme description so don't worry if you don't have one for everything. These items should already have been specified by the ThemeDescription, so now it is just filling in the pictures.

Sent from my Jailbroken iPad 3