2012-07-02 21 views
8

He estado luchando con este problema todo el día y no he tenido éxito. Básicamente estoy tratando de obtener un recurso de imagen de otro apk.Obtener recursos de otra aplicación

Así que si com.example.app tiene una imagen llamada image1.png en la carpeta res, quiero que com.example2.app pueda obtener acceso a ese recurso y colocarlo en una vista de imagen.

Sé que tiene que usar PackageManager.getResourcesForApplication, pero todavía no he podido obtener el recurso real.

¡Cualquier ayuda sería increíble!

+1

¿qué has intentado? –

Respuesta

15

lo descubrió ...

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

Marque aquí para más explicación forma otra pregunta! Share raw resource between apk's

4

intente esto:

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

Cuando probé esto, estaba sacando imágenes de mi propia aplicación: - /. Tiempo invertido lo ejecuté, iría a la siguiente imagen en la carpeta dibujable. – user1190019

+0

asegúrate de estar pasando el nombre correcto del paquete de otra aplicación? –

+0

sí, yo soy. Lo que hace es mostrar el dibujo de mi aplicación y no la de la otra aplicación. Entonces, si elijo la sexta imagen en la lista de dibujables en el paquete elegido, mostrará la sexta imagen en mi lista de dibujables. ¿Estoy tratando de mostrarlo en una imagen incorrecta? Funcionaría esto ... TEST.setImageDrawable (imagen); – user1190019

Cuestiones relacionadas