2012-03-10 51 views
14

我有一个简单的android应用程序来播放视频。我有一个包含几个按钮的主屏幕。如果按下按钮,它将播放视频。一切正常。Android添加额外的皮肤作为单独的APK

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

谢谢

回答

2

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

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

  2. 如果您发现主题apk,请从该应用中读取资产文件。我不知道该怎么做,但这个链接会帮助你。 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