2012-07-02 7 views
8

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

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

私はあなたがPackageManager.getResourcesForApplicationを使用しなければならないことは知っていますが、私はまだ実際のリソースを取得するのに失敗しています。

何か助けが素晴らしいだろう!

+1

何を試してみましたか? –

答えて

15

はそれを考え出した...

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(); 
    } 

チェックをここでは他の質問フォームより詳細な説明のために! Share raw resource between apk's

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(); 
} 
+0

私はこれを試してみると、自分のアプリからイメージを引っ張っていました: - /。私はそれを実行して、それはdrawableフォルダの次のイメージに行くだろう時間を返す。 – user1190019

+0

別のアプリの正しいパッケージ名を渡していることを確認してください。 –

+0

はい私は午前です。それは、私のアプリからdrawableを見せているのですが、他のアプリでは見えません。したがって、選択したパッケージのドロワーブルリストで6番目のイメージを選択すると、6番目のイメージがドロウアブルリストに表示されます。イメージビューで間違って表示しようとしていますか?これはうまくいくでしょうか... TEST.setImageDrawable(image); – user1190019

関連する問題