Buscar..


Usa un tema personalizado a nivel mundial

En themes.xml:

<style name="AppTheme" parent="Theme.AppCompat">
    <!-- Theme attributes here -->
</style>

En AndroidManifest.xml:

<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    
    <!-- Activity declarations here -->

</application>

Definir colores primarios, primarios oscuros y de acento.

Puedes personalizar la paleta de colores de tu tema .

Usando APIs de framework

5.0
<style name="AppTheme" parent="Theme.Material">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <item name="android:colorAccent">@color/accent</item>
</style>

Uso de la biblioteca de soporte de Appcompat (y AppCompatActivity )

2.1.x
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
</style>

Usar tema personalizado por actividad

En themes.xml:

<style name="MyActivityTheme" parent="Theme.AppCompat">
    <!-- Theme attributes here -->
</style>

En AndroidManifest.xml:

<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat">
    
    <activity
        android:name=".MyActivity"
        android:theme="@style/MyActivityTheme" />

</application>

Color de desplazamiento superior (API 21+)

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:colorEdgeEffect">@color/my_color</item>
</style>

Color de ondulación (API 21+)

5.0

La animación de rizado se muestra cuando el usuario presiona vistas seleccionables.

Puede usar el mismo color de ondulación que utiliza su aplicación al asignar ?android:colorControlHighlight en sus vistas. Puede personalizar este color cambiando el atributo android:colorControlHighlight en su tema:

Este efecto de color se puede cambiar:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:colorControlHighlight">@color/my_color</item>
</style>

O, si está utilizando un tema material:

<style name="AppTheme" parent="android:Theme.Material.Light">
    <item name="android:colorControlHighlight">@color/your_custom_color</item>
</style>

Barra de estado de luz (API 23+)

Este atributo puede cambiar el fondo de los iconos de la barra de estado (en la parte superior de la pantalla) a blanco.

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowLightStatusBar">true</item>
</style>

La barra de navegación (en la parte inferior de la pantalla) puede ser transparente. Aquí está la manera de lograrlo.

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowTranslucentNavigation">true</item>
</style>

La barra de estado (parte superior de la pantalla) se puede hacer transparente, aplicando este atributo al estilo:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowTranslucentStatus">true</item>
</style>

Color de la barra de navegación (API 21+)

5.0

Este atributo se usa para cambiar la barra de navegación (una, que contiene Atrás, botón Inicio reciente). Por lo general, es negro, sin embargo su color puede ser cambiado.

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:navigationBarColor">@color/my_color</item>
</style>

Herencia del tema

Al definir los temas, uno usualmente usa el tema provisto por el sistema, y ​​luego los cambios modifican el aspecto para que se ajuste a su propia aplicación. Por ejemplo, así es como se Theme.AppCompat tema Theme.AppCompat :

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

Este tema ahora tiene todas las propiedades del tema Theme.AppCompat estándar, excepto los que cambiamos explícitamente.

También hay un atajo cuando se hereda, usualmente usado cuando uno hereda de su propio tema:

<style name="AppTheme.Red">
    <item name="colorAccent">@color/red</item>
</style>

Ya que ya tiene AppTheme. al comienzo de su nombre, lo hereda automáticamente, sin necesidad de definir el tema parent . Esto es útil cuando necesita crear estilos específicos para una parte (por ejemplo, una sola actividad) de su aplicación.

Temas múltiples en una aplicación

Usando más de un tema en su aplicación de Android, puede agregar colores personalizados a cada tema, para ser así:

OneTheme DosTema

Primero, tenemos que agregar nuestros temas a style.xml como este:

<style name="OneTheme" parent="Theme.AppCompat.Light.DarkActionBar">

</style>

<!--  -->
<style name="TwoTheme" parent="Theme.AppCompat.Light.DarkActionBar" >

</style>
......

Arriba puedes ver OneTheme y TwoTheme .

Ahora, vaya a su AndroidManifest.xml y agregue esta línea: android:theme="@style/OneTheme" a su etiqueta de aplicación , esto hará que OneTheme sea el tema predeterminado:

<application
        android:theme="@style/OneTheme"
        ...>

Cree un nuevo archivo xml llamado attrs.xml y agregue este código:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="custom_red" format="color" />
    <attr name="custom_blue" format="color" />
    <attr name="custom_green" format="color" />
</resources>
<!-- add all colors you need (just color's name) -->

Vuelva a style.xml y agregue estos colores con sus valores para cada tema:

<style name="OneTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="custom_red">#8b030c</item>
    <item name="custom_blue">#0f1b8b</item>
    <item name="custom_green">#1c7806</item>
</style>

<style name="TwoTheme" parent="Theme.AppCompat.Light.DarkActionBar" >
    <item name="custom_red">#ff606b</item>
    <item name="custom_blue">#99cfff</item>
    <item name="custom_green">#62e642</item>
</style>

Ahora que tiene colores personalizados para cada tema, agreguemos estos colores a nuestras vistas.

Agregue color custom_blue al TextView usando "? Attr /":

Ve a tu imagen y añade este color:

<TextView>
    android:id="@+id/txte_view"
    android:textColor="?attr/custom_blue" />

Mow podemos cambiar el tema solo con una sola línea setTheme(R.style.TwoTheme); esta línea debe ser antes setContentView() método en el onCreate() método, como este Activity.java :

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(R.style.TwoTheme);
    setContentView(R.layout.main_activity);
    ....
}


Cambio de tema para todas las actividades a la vez.

Si queremos cambiar el tema para todas las actividades, tenemos que crear una nueva clase llamada MyActivity extiende la clase AppCompatActivity (o clase de Activity ) y agregue la línea setTheme(R.style.TwoTheme); al método onCreate () :

public class MyActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (new MySettings(this).isDarkTheme())
            setTheme(R.style.TwoTheme);
    }
}

Finalmente, vaya a todas sus actividades y añada todos ellos a la clase base MyActivity :

public class MainActivity extends MyActivity {
    ....
}

Para cambiar el tema, solo vaya a MyActivity y cambie R.style.TwoTheme a su tema ( R.style.OneTheme , R.style.ThreeTheme ....).



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow