我找不到如何从我的应用中列出所有可绘制的内容。
如果我知道这个名字,我设法得到了drawables,但是从1到N的简单循环找不到怎么做。
你们中的任何人都可以提供代码模板吗?
以下代码已经有效:
mAndromedaAddonContext = createPackageContext( "com.demo.andromeda",
Context.CONTEXT_IGNORE_SECURITY );
mPlanetsResID[0] = mAndromedaAddonResources.getIdentifier( "planet20111007081421628", "drawable", "com.demo.andromeda" );
但我想在不使用资源名称的情况下进行迭代。 这些方面的东西: for(int i = 0; i
我在清单文件中有相同的sharedUserId和进程,因此我有权从其他应用程序访问资源。
提前致谢。
答案 0 :(得分:2)
首先使用mAndromedaAddonResources.getAssets()
为您要定位的应用获取AssetManger的实例。
见这里: https://developer.android.com/reference/android/content/res/Resources.html#getAssets()
然后你可以使用
public final String[] list (String path)
方法获取给定路径中所有资源的列表(在您的情况下,它将是您要定位的应用程序的res / drawable文件夹的路径)。这将为您提供一个字符串列表,其中每个字符串都是资产名称。然后,您只需使用您使用的相同代码来获取其标识符。
有关AssetManager的更多信息: https://developer.android.com/reference/android/content/res/AssetManager.html