Android Aplicar un tema de AppCompat


Ejemplo

La biblioteca de soporte de AppCompat proporciona temas para crear aplicaciones con la especificación de Diseño de materiales . También se requiere un tema con un padre de Theme.AppCompat para que una Actividad extienda AppCompatActivity .

El primer paso es personalizar la paleta de colores de tu tema para colorear automáticamente tu aplicación.
En la aplicación res/styles.xml puede definir:

<!-- inherit from the AppCompat theme -->
<style name="AppTheme" parent="Theme.AppCompat">

    <!-- your app branding color for the app bar -->
    <item name="colorPrimary">#2196f3</item>
    
    <!-- darker variant for the status bar and contextual app bars -->
    <item name="colorPrimaryDark">#1976d2</item>

    <!-- theme UI controls like checkboxes and text fields -->
    <item name="colorAccent">#f44336</item>
</style>

En lugar de Theme.AppCompat , que tiene un fondo oscuro, también puede usar Theme.AppCompat.Light o Theme.AppCompat.Light.DarkActionBar .

Puedes personalizar el tema con tus propios colores. Las buenas elecciones se encuentran en la tabla de colores de especificación de diseño del material y en la paleta de materiales Los colores "500" son buenas opciones para el primario (azul 500 en este ejemplo); Elija "700" del mismo tono para el oscuro; y un tono de un tono diferente como el color de acento. El color primario se usa para la barra de herramientas de su aplicación y su entrada en la pantalla de información general (aplicaciones recientes), la variante más oscura para teñir la barra de estado y el color de acento para resaltar algunos controles.

Después de crear este tema, aplíquelo a su aplicación en AndroidManifest.xml y también aplique el tema a cualquier actividad en particular. Esto es útil para aplicar un tema AppTheme.NoActionBar , que le permite implementar configuraciones de barra de herramientas no predeterminadas.

<application android:theme="@style/AppTheme" 
    ...>
    <activity 
        android:name=".MainActivity"
        android:theme="@style/AppTheme" />
</application>

También puede aplicar temas a vistas individuales usando android:theme y un tema ThemeOverlay . Por ejemplo con una Toolbar :

<android.support.v7.widget.Toolbar
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?attr/colorPrimary"
  android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

o un Button :

<Button
    style="@style/Widget.AppCompat.Button.Colored"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:theme="@style/MyButtonTheme"/>

<!-- res/values/themes.xml -->
<style name="MyButtonTheme" parent="ThemeOverlay.AppCompat.Light">
    <item name="colorAccent">@color/my_color</item>
</style>