В настоящее время я изучаю возможность , добавляя поддержку загружаемых скинов/тем в моем приложении. Поскольку папка res не может быть изменена во время выполнения, я ищу альтернативы и уже пришел к некоторым выводам.Загружаемые темы на Android
Я пытался иметь 2 приложение с основными ресурсами доступа приложения из вспомогательной (то есть различные стили/макеты/темы с соответствующими именами) с методами, как:
Resources res = getPackageManager().getResourcesForApplication("org.example.foo");
res.getIdentifier("AnotherTheme", "style", "org.example.foo");
или
Context externalContext = createPackageContext("org.example.foo", Context.CONTEXT_IGNORE_SECURITY);
Theme externalTheme = externalContext.getTheme();
getTheme().setTo(externalTheme);
среди других методов, связанных с этим видом «удаленной» загрузки. Однако ничего этого не было.
Кажется, что загрузка ресурсов из другого пакета работает только для «прямых» ресурсов, таких как чертежи или строки. Моя теория заключается в том, что стили и темы работают со ссылками, и поэтому система не может применять эти ссылки в текущем Контексте.
Вопрос в следующем: может ли это быть сделано с помощью этого подхода или с аналогичным?
После этого есть другой метод ... Обход менеджера ресурсов Android полностью и управляйте всем программным путем. Моя главная проблема здесь в производительности, так кто-нибудь знает, какие оптимизации сделаны с предварительной компиляцией ресурсов в приложениях Android? Или во время работы?
У вас есть обновление по этому вопросу, NeTeInStEiN? – Wayne
В настоящее время я думаю, что это все еще остается правдой, а это означает, что на самом деле нет хорошего способа иметь загружаемые темы, не влияя на производительность IMHO. – neteinstein