【发布时间】:2023-03-14 13:09:01
【问题描述】:
我有一个简单的安卓应用来播放视频。我有一个包含几个按钮的主屏幕。如果您按下按钮,它将播放视频。一切正常。
我的问题是我的主屏幕有一张背景图片,也有一张按钮图片。我有一个按钮来选择应用程序的皮肤。有三个选项。当我选择三个选项时,背景图像和按钮图像会发生变化。现在我想在后期将皮肤(包含背景图像和按钮图像)作为单独的 apk 提供。当我安装这个 apk 时,它应该与已经存在的皮肤一起显示。哪种方法最简单?
谢谢
【问题讨论】:
我有一个简单的安卓应用来播放视频。我有一个包含几个按钮的主屏幕。如果您按下按钮,它将播放视频。一切正常。
我的问题是我的主屏幕有一张背景图片,也有一张按钮图片。我有一个按钮来选择应用程序的皮肤。有三个选项。当我选择三个选项时,背景图像和按钮图像会发生变化。现在我想在后期将皮肤(包含背景图像和按钮图像)作为单独的 apk 提供。当我安装这个 apk 时,它应该与已经存在的皮肤一起显示。哪种方法最简单?
谢谢
【问题讨论】:
我没有尝试从其他 apk 中读取主题,但我认为您可以使用此策略。
从设备中找到您的主题包。为此,您应该制定命名规则或某种方法来检查该包是否是您的主题 apk。我假设您将主题 apk 命名为 'com.myapp.theme.????'
如果您找到主题 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
【讨论】: