我有一个简单的android应用程序来播放视频。我有一个包含几个按钮的主屏幕。如果您按下按钮,它将播放视频。一切正常。

我的问题是我的主屏幕只有一个背景图像,也有一个按钮图像。我有一个按钮可以为应用选择皮肤。有三个选项。当我选择三个选项时,背景图像和按钮图像将发生变化。现在,我想在以后的阶段将皮肤(包含背景图像和按钮图像)作为单独的apk给出。当我安装此apk时,应该显示出已经存在的皮肤。哪个是最简单的方法来做到这一点?

谢谢

最佳答案

我没有尝试从其他apk读取主题,但是我认为您可以使用此策略。

  • 从设备中找到您的主题包。为此,您应该制定一个命名规则或某种方法来检查该软件包是否是您的主题apk。我假设您将主题apk命名为“com.myapp.theme。????”
  • (如果您找到主题apk),请从该应用读取 Assets 文件。我不知道该怎么做,但是此链接将为您提供帮助。 Access Assests from another application?

  • 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

    10-08 07:01
    查看更多