How to use Theme DIY

ThemeDIY is an app that creates CMTE as well as Substratum themes on-the-fly from within Android devices, without the need of a PC.
This post is a guide on how to create a theme using ThemeDIY

This app is designed for Android 5.0+ devices with CMTE (for devices older than Nougat) and Substratum (Nougat+) only. It doesn't support older Android versions

Sharing themes license

You can:

• Publish themes on Play Store (as free apps)
• You can remove ThemeDIY watermarks
• You can modify the theme

You can't:

• You cannot earn money from the theme you made. This includes but not limited to: ads, in-app purchases, donations, or publishing the theme as paid app
• You cannot use one of your themeDIY themes as a template for your paid theme

Community

Make sure to join ThemeDIY's community on Google+ to stay up to date with latest news and check out what other users have created.

Reporting bugs

Use in-app bug reporting option. I may or may not respond to your email depending on the bug being reported. Please don't forget to mention the following details:
• The ROM you're using.
• Provide screenshots.
• Provide LogCat if possible.

How to get it

You can get the app from Google Play store. Download from the Play Store here.

Make themes

Once you've launched the app, you will be directed to the app's home view. Home view has three elements, the big white "add" button at the bottom which allows you to build a new theme. The three-dots menu at the top-right corner which has a bunch of options. The main themes showcase view at the center will show saved themes sorted according to the date they were created.
You can do number of things from each card in the showcase view:
-See a theme preview. Preview differs depending on the type of the theme. By default, it shows the theme's wallpaper and some elements. The preview isn't a precise presentation of the actual theme.
-Build and install theme from the tick icon. If the theme is already installed, long pressing the icon will take you directly to the theme manager. Please note that Cyanogen theme manager (not CyanogenMod theme manager) is not supported.
-Share the theme's APK. The share icon is only visible when the theme is built.
-Delete the theme, and/or uninstall it. Long-pressing the icon will uninstall the theme without deleting the theme from themeDIY.

To get started, press the "+" button. You will be directed to the "editor" screen, which lets you add, or edit themes.

Editor screen

Name

Enter the name of your theme. In older versions of the app, this will be used as APK file name, too, hence no spaces or special characters are allowed. In newer versions, the name will be different from the APK name, and special characters are allowed, including emoticons

Author

Enter your name. Default value will be set to 'themeDIY'. All characters are allowed in this field

Theme type

You can define what kind of theme you want to create, by default, all elements are enabled (styles, wallpaper, lock-screen wallpaper, boot-animation, navigation bar icons, fonts, sounds, icons). Defining a specific type for a theme will reduce the APK size and increase building speed.
You will notice that theme preview will change depending on the type.

Style

You can customize the theme's elements, colors, and icons in this section. There are five main tabs for customizing theme's style: elements, default colors, and icons, backgrounds, and per-app modifications section.

Elements

You may see different elements depending on your Android version (e.g. Status bar icons color are only for Android 6+)
In elements section, you will find options to tweak the looks of your theme even more with variety of switches, radio buttons, checkboxes, and animations. All of these are vector images and should offer pixel-perfect quality.
First item of every elements row is the default "stock system" one
Action bar shadow: this option let's you choose between default Android style (shadow), and flat design (no shadow). This will be interpreted differently by each app (e.g. flat action bar design will flatten cards).
Notification toggle size: pick 'large' for bigger toggles icons in notifications area
Notification area style: this option let's you choose between Android Lollipop and Android Nougat notification design.
Status bar icons color: Choose 'inverted' option for black status bar icons (clock, wifi, cellular, etc.. at the top of the screen)
Ripple color: choose between white, or colored touch feedback effect
The rest of elements have animated previews and are self-explanatory and are provided with live previews

Default colors

• You can kickstart your theme with one of the predefined presets. You can use the presets as a template then modify specific colors.
• The first option is "generate colors from an image". This uses an algorithm that extracts dominant color from image and round it up to closest Material color. It may not be always accurate. Best images are those with one dominant color. Accent color is determined randomly depending on contrast. You can use this option as a head-start for defining colors then tailor colors to your liking.
• Below them are actual theme's colors. They are separated into two sections, system colors, and notification area colors. You might want to go to per-app modification section and use the WYSIWYG editor if you aren't familiar with the colors

Icons

Here you can pick from built-in icon packs for settings, and for status bar

Backgrounds

Here you can define image backgrounds for some elements such as action bar, notification header, quick toggles background, notification entry background. You can also customize the default analog clock widget

Per-app modifications

Drag your finger on the WYSIWYG editor to highlight different elements
This tab lets you change colors for individual apps, as well as disable them from being themed. Some apps have more options to offer such as WYSIWYG editor.
You can tap on the rest icon at the top-right corner of the screen to reset the per-app modifications for a specific app. A confirmation pop-up will be shown.
You can also set the default colors for each app by tapping on the colors circles next to the reset icon at the top-right corner
Advanced mode option lets you see all the colors for this app, including the non-standard colors mentioned above. The advanced mode will no longer be available in future updates.

Fonts

You can pick .TTF or .OTF fonts for your theme. It is essential to import bold, regular fonts with their italic variants since those fonts are widely used in Android system compared to, for example, black and thin fonts.
Upon the successful picking of a font file, a preview of the font will be shown underneath its name, and reset button will appear
ThemeDIY will recognise if there are other fonts belonging to the same font family existing in the same directory as the selected file. This will allow you import fonts belonging to the same family directly without having to pick every font individually.

Soft keys

Soft keys, in case you don't know, are used to navigate UI in phones without physical keys, e.g. Pixel phones
You will notice a preview at the top of the screen with five soft keys, (i.e. back, home, recent apps, menu and search). Tap on any to pick images from gallery, alternatively you can select one of the predefined icon packs below the preview section.
Images must be .PNG files.

Sounds

In this section, you will be able to define custom audio files for your theme. This includes ring tone, alarm, and notification chime. Following same style as other sections, you will see preview of your selection upon a successful import

Wallpaper & lock-screen backgrounds

Browse for JPG (preferred) or PNG backgrounds that you wish to use as wallpaper or/and, lock-screen background for your theme.
This option is not available for Substratum engine. Instead, you can assign cover image for your theme.

Boot animation

Browse for bootanimation.zip file that you want to use. Please be careful in your selection. If you used faulty zip, your phone will go into a bootloop. In newer versions of ThemeDIY, flashable ZIPs are accepted as valid files

Current development

Adding support for Android 8.0

HTML5 UP