2012-07-02 12 views
8

Sono stato alle prese con questo problema tutto il giorno e non ho avuto successo. In pratica sto cercando di ottenere una risorsa immagine da un altro apk.Ottieni risorse da un altro apk

Quindi se com.example.app ha un'immagine chiamata image1.png nella cartella res, voglio com.example2.app per poter accedere a tale risorsa e posizionarla in una vista di immagini.

So che è necessario utilizzare PackageManager.getResourcesForApplication, ma non sono ancora riuscito a ottenere la risorsa effettiva.

Qualsiasi aiuto sarebbe fantastico!

+1

cosa hai provato ?? –

risposta

15

capito ...

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

Controllare qui per ulteriori spiegazioni forma altra domanda! Share raw resource between apk's

4

provare questo:

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

Quando ho provato questo, è stato tirando le immagini dalla mia app: - /. Evert tempo che l'ho eseguito, sarebbe andato alla prossima immagine nella cartella drawable. – user1190019

+0

assicurati di passare il nome del pacchetto corretto di un'altra app? –

+0

sì, lo sono. Quello che sta facendo è mostrare il drawable dalla mia app e non dall'altra app. Quindi, se scelgo la sesta immagine in basso nell'elenco dei drawable nel pacchetto scelto, mostrerò invece la sesta immagine nella mia lista dei drawables. Sto solo cercando di mostrarlo in una visione d'immagine sbagliata? Funzionerebbe ... TEST.setImageDrawable (immagine); – user1190019