What is difference among styles.xml and themes.xml

May I know what is the difference between styles.xml and themes.xml? To me, they just look same as both XML are in the same format.

<style name="...
    <item name="...

So, in my app which provide customization coloring, size, drawable, ... do I need both styles.xml and themes.xml as well? How should I decide which XML to put in which file?


Out of the whole page of the Styles and Themes. You may be looking for this line.

When you apply a style to a single View in the layout, the properties defined by the style are applied only to that View. If a style is applied to a ViewGroup, the child View elements will not inherit the style properties—only the element to which you directly apply the style will apply its properties. However, you can apply a style so that it applies to all View elements—by applying the style as a theme.

When you apply as theme, it changes everything in scope, depending if you applied it on Activity or Application. Style is more 'local'.


Quoted from Android API guide:

To create a set of styles, save an XML file in the res/values/ directory of your project. The name of the XML file is arbitrary, but it must use the .xml extension and be saved in the res/values/ folder. The root node of the XML file must be <resources>.

Full documentation

So I guess it really doesn't matter if you put any styles in any files as long as it's an xml file which locates in res/values/ folder.