2012-07-02 16 views
8

Przez cały dzień borykałem się z tym problemem i nie odniosłem sukcesu. Zasadniczo próbuję uzyskać zasób obrazu z innej aplikacji.Zdobądź zasoby z innego apk

Jeśli więc plik com.example.app ma obraz o nazwie image1.png w folderze res, chcę, aby plik com.example2.app był w stanie uzyskać dostęp do tego zasobu i umieścić go w widoku obrazu.

Wiem, że trzeba użyć PackageManager.getResourcesForApplication, ale nadal nie udało się uzyskać rzeczywistego zasobu.

Każda pomoc będzie świetna!

+1

co próbowałeś? –

Odpowiedz

15

Zdobione ...

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

Sprawdź tutaj, aby uzyskać więcej wyjaśnień innej formie pytania! Share raw resource between apk's

4

spróbuj tego:

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

Kiedy wypróbowałem to, to ciągnęło obrazy z mojej własnej aplikacji: - /. Po upływie czasu, który uruchomiłem, przejdzie do następnego obrazu w folderze do rysowania. – user1190019

+0

upewnij się, że przekazujesz prawidłową nazwę pakietu innej aplikacji? –

+0

Tak, jestem. To, co robi, to pokazywanie kreacji z mojej aplikacji, a nie z drugiej aplikacji. Jeśli więc wybiorę szósty obraz na liście rysunków w wybranej paczce, zamiast tego pojawi się szósty obraz na mojej liście. Czy staram się pokazać to w niewłaściwym widoku? Czy to działa ... TEST.setImageDrawable (obraz); – user1190019