Android добавить дополнительный скин как отдельный APK - PullRequest
14 голосов
/ 10 марта 2012

У меня есть простое приложение для Android для воспроизведения видео.У меня есть главный экран, содержащий несколько кнопок.Если вы нажмете кнопку, он будет воспроизводить видео.Все работает нормально.

Моя проблема в том, что у моего основного экрана есть одно фоновое изображение, а также одно изображение для кнопок.У меня есть одна кнопка, чтобы выбрать скин для приложения.Есть три варианта.Когда я выбираю три варианта, фоновое изображение и изображение кнопки будут меняться.Теперь я хочу дать скины (содержит фоновое изображение и изображение кнопки) как отдельные apk на более поздних этапах.Когда я устанавливаю этот apk, он должен отображаться с уже существующим скином.Какой самый простой способ сделать это?

Спасибо

1 Ответ

2 голосов
/ 06 апреля 2012

Я не пытался читать темы из других apk, но я думаю, что вы можете использовать эту стратегию.

  1. найти пакет вашей темы с устройства.Для этого вы должны создать правило именования или какой-либо метод, чтобы проверить, является ли этот пакет вашей темой apk или нет.Я предполагаю, что вы называете тему apk как com.myapp.theme.????'

  2. , если вы найдете apk theme, прочитайте файл ресурсов из этого приложения.Я не знаю, как это сделать, но эта ссылка поможет вам. Доступ к активам из другого приложения?

PackageManager pkgMgr = ctx.getPackageManager();
List<ApplicationInfo> apps = pkgMgr.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo ai : apps) {
  String pkgName = ai.packageName;
  if( pkgName.startsWith( "com.myapp.theme" ) {  //this pkg is your theme pkg
       //access asset of this app
  }
}

fff

...