Я читал комментарии о приложении для контактов и о том, как в нем используется тема для каждого контакта.
Возможно, в приложении "Контакты" есть несколько предопределенных тем (для каждого основного цвета материала отсюда: http://www.google.com/design/spec/style/color.html).
Вы можете применить тему перед методом setContentView внутри метода onCreate.
Затем приложение контактов может случайным образом применить тему к каждому пользователю.
Этот метод:
setTheme(R.style.MyRandomTheme);
Но у этого метода есть проблема, например, он может изменить цвет панели инструментов, цвет эффекта прокрутки, цвет ряби и т. Д., Но он не может изменить цвет строки состояния и цвет панели навигации (если вы тоже хотите изменить его).
Затем для решения этой проблемы вы можете использовать метод до и:
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.md_red_500));
getWindow().setStatusBarColor(getResources().getColor(R.color.md_red_700));
}
Эти два метода изменяют цвет панели навигации и строки состояния. Помните, что если вы установите полупрозрачную панель навигации, вы не сможете изменить ее цвет.
Это должен быть окончательный код:
@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);
}
Вы можете использовать переключатель и сгенерировать случайное число, чтобы использовать случайные темы, или, как в приложении контактов, каждый контакт, вероятно, имеет заранее определенный связанный номер.
Образец темы:
<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>
person
JavierSegoviaCordoba
schedule
19.01.2015