9

私は一日中この問題に苦しんでいて、成功していません。私は基本的に別のapkから画像リソースを取得しようとしています。

したがって、com.example.appのresフォルダーにimage1.pngという画像がある場合、com.example2.appがそのリソースにアクセスして、画像ビューに配置できるようにします。

PackageManager.getResourcesForApplicationを使用する必要があることは知っていますが、実際のリソースを取得できませんでした。

どんな助けでも素晴らしいでしょう!

4

2 に答える 2

16

理解した...

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間で生のリソースを共有する

于 2012-07-02T07:50:24.780 に答える
4

これを試して:

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();
}
于 2012-07-02T05:51:37.430 に答える