Leí los comentarios sobre la aplicación de contactos y cómo usa un tema para cada contacto.
Probablemente, la aplicación de contactos tiene algunos temas predefinidos (para cada color primario del material desde aquí: http://www.google.com/design/spec/style/color.html ).
Puede aplicar un tema antes del método setContentView dentro del método onCreate.
Luego, la aplicación de contactos puede aplicar un tema al azar a cada usuario.
Este método es:
setTheme(R.style.MyRandomTheme);
Pero este método tiene un problema, por ejemplo, puede cambiar el color de la barra de herramientas, el color del efecto de desplazamiento, el color de ondulación, etc., pero no puede cambiar el color de la barra de estado y el color de la barra de navegación (si también desea cambiarlo).
Luego, para resolver este problema, puede usar el método antes y:
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.md_red_500));
getWindow().setStatusBarColor(getResources().getColor(R.color.md_red_700));
}
Estos dos métodos cambian el color de la barra de navegación y estado. Recuerde, si configura la barra de navegación como translúcida, no puede cambiar su color.
Este debería ser el código final:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.MyRandomTheme);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.myrandomcolor1));
getWindow().setStatusBarColor(getResources().getColor(R.color.myrandomcolor2));
}
setContentView(R.layout.activity_main);
}
Puede usar un interruptor y generar un número aleatorio para usar temas aleatorios o, como en la aplicación de contactos, cada contacto probablemente tenga un número predefinido asociado.
Una muestra de tema:
<style name="MyRandomTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/myrandomcolor1</item>
<item name="colorPrimaryDark">@color/myrandomcolor2</item>
<item name="android:navigationBarColor">@color/myrandomcolor1</item>
</style>
Lo siento por mi ingles.