我整天都在努力解决这个问题,但没有成功。我基本上是在尝试从另一个 apk 获取图像资源。
因此,如果 com.example.app 在 res 文件夹中有一个名为 image1.png 的图像,我希望 com.example2.app 能够访问该资源并将其放置在 imageview 中。
我知道您必须使用 PackageManager.getResourcesForApplication,但我仍然未能成功获取实际资源。
任何帮助都是极好的!
我整天都在努力解决这个问题,但没有成功。我基本上是在尝试从另一个 apk 获取图像资源。
因此,如果 com.example.app 在 res 文件夹中有一个名为 image1.png 的图像,我希望 com.example2.app 能够访问该资源并将其放置在 imageview 中。
我知道您必须使用 PackageManager.getResourcesForApplication,但我仍然未能成功获取实际资源。
任何帮助都是极好的!
弄清楚了...
final String packName = "com.example2.app";
String mDrawableName = "app_icon";
try {
PackageManager manager = getPackageManager();
Resources mApk1Resources = manager.getResourcesForApplication(packName);
int mDrawableResID = mApk1Resources.getIdentifier(mDrawableName, "drawable",packName);
Drawable myDrawable = mApk1Resources.getDrawable( mDrawableResID );
if( myDrawable != null )
TEST.setBackgroundDrawable(myDrawable );
}
catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在此处查看其他问题的更多解释!在 apk 之间共享原始资源
尝试这个:
final String packName = "com.example.app ";
Resources resources;
try {
PackageManager manager = getPackageManager();
resources = manager.getResourcesForApplication(packName);
int resID = resources.getIdentifier("image1", "drawable", packName);
Log.d(TAG, "resID = " + resID);
Drawable image = getResources().getDrawable(resID);
Log.d(TAG, "resID = " + resID);
}
catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}