2009-12-03 2 views
1

Теперь я работаю над изменением стиля темы Android в режиме исполнения, когда пользователь выбирает ресурс темы, а не только текущее приложение, но и все приложения, установленные на телефоне, должны быть изменены. Например, так же, как вы меняете системный язык в настройке активности, изменился язык всех приложений. Я просто не могу понять, как Android Framework достигает этого, кто-нибудь знает об этом?Есть ли способ изменить тему андроида во время выполнения?

В то время как я пытался использовать PackageManager, так же, как это:

PackageManager manager = getPackageManager(); 
    List<ApplicationInfo> apps = manager 
      .getInstalledApplications(PackageManager.GET_META_DATA); 

    for (ApplicationInfo app : apps) { 
     app.theme=android.R.style.Theme_Light_NoTitleBar_Fullscreen; 
    } 

Он не будет работать. Является ли атрибуция «темой» в ApplicationInfo только для чтения?

ответ

3

Я не думаю, что это хорошая идея для исправления данных иностранных приложений. Вы не получили бы деривацию тем, новые обнаруженные приложения должны были быть обнаружены и т. Д. В любом случае вам, вероятно, понадобится внедренный телефон для таких изменений, так почему бы не перезаписать ресурсы темы по умолчанию, такие как Metamorph, и все эти пользовательские ПЗУ? Конечно, лучшим решением было бы, если Android будет поддерживать настраиваемые темы по умолчанию в первую очередь.

Смежные вопросы