Un estilo (style) es una colección de propiedades que especifican el aspecto de los componentes View (elementos de las ventanas). Un estilo puede especificar propiedades como la altura, márgenes, color de fuente, tamaño de fuente, color de fondo, etc. El uso de estilos permite separar el diseño de las ventanas frente a su contenido, se manera similar a las hojas de estilo en el desarrollo web.

Los estilos se definen en un archivo XML de manera similar a otros recursos de valores, dentro de la carpeta res/values en un archivo cuyo nombre se recomienda que sea styles.xml .

Un tema (theme) es un estilo aplicado a una activity o a toda la aplicación, en lugar de aplicarse a un View indidual. Cuando un estilo se aplica como un tema, cada componente de la activity o la aplicación entera se aplicará cada propiedad que soporte entre las especificadas en el estilo.

El formato de declaración de los estilos es el siguiente:

<style name="style_name" parent="parent_style">

    <item name="property">value</item>

    <item name="property">value</item>

    ...

</style>

El atributo parent es opcional y especifica otro estilo del que heredará sus propiedades. La lista de los estilos predefinidos que aporta el sistema se puede encontrar aquí: Android Styles (styles.xml).

Por ejemplo:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance_Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

Para aplicar un estilo a un componente, deberás indicar su nombre en la propiedad style del componente. Esto puedes hacerlo desde el archivo XML del layout, o desde la lista de propiedades de la vista diseño, donde puedes usar el botón de los puntos suspensivos para buscar directamente el nombre del estilo.

studioStyle01

Si deseas indicarlo en el archivo XML debes hacerlo como un atributo más dentro de la etiqueta del componente, con el formato: 

style="@style/style_name"

En cambio, si deseas aplicar el estilo a una activity o a toda la aplicación, deberás especificarlo en el archivo Manifest. como un atributo más dentro de la etiqueta activity o application.

<application android:theme="@style/style_name">

<activity android:theme="@android:style/style_name">

Por ejemplo:

<application android:theme="@style/CustomTheme">

Puedes usar como estilo de la activity o de la aplicación uno de los predefinidos del sistema. Por ejemplo, puedes usar el estilo Theme.Dialog en una activity para que se muestre como una ventana de diálogo quedando parcialmente sobre otra activity:

<activity android:theme="@android:style/Theme.Dialog">

La lista de los estilos predefinidos que aporta el sistema se puede encontrar aquí: Android Themes (themes.xml).

Puedes encontrar más información sobre estilos y temas en: Styles and Themes de Android Developer.