Android将额外的皮肤添加为单独的APK

时间:2012-03-10 05:03:23

标签: android skin

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

我的问题是我的主屏幕有一个背景图像,还有一个按钮图像。我有一个按钮来选择应用程序的皮肤。有三种选择。当我选择三个选项时,背景图像和按钮图像将会改变。现在我想在后期阶段将皮肤(包含背景图像和按钮图像)作为单独的apk。当我安装这个apk时,它应该与已经存在的皮肤一起显示。哪种方法最简单?

由于

1 个答案:

答案 0 :(得分:2)

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

  1. 从设备中找到您的主题包。要做到这一点,你应该制定一个命名规则或一些方法来检查该包是否是你的主题apk。我假设你将主题apk命名为'com.myapp.theme。????'

  2. 如果您找到主题apk,请从该应用中读取资产文件。我不知道该怎么做,但这个链接会对你有所帮助。 Access Assests from another application?

  3. 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