2012-07-02 38 views
8

Tôi đã đấu tranh với vấn đề này cả ngày và không thành công. Về cơ bản tôi đang cố gắng lấy một tài nguyên hình ảnh từ một gói ứng dụng khác.Nhận tài nguyên từ một gói ứng dụng khác

Vì vậy, nếu com.example.app có hình ảnh được gọi là image1.png trong thư mục res, tôi muốn com.example2.app có thể truy cập vào tài nguyên đó và đặt nó vào một lần xem hình ảnh.

Tôi biết bạn phải sử dụng PackageManager.getResourcesForApplication, nhưng tôi vẫn không thành công trong việc nhận tài nguyên thực.

Mọi trợ giúp đều tuyệt vời!

+1

những gì bạn đã thử ?? –

Trả lời

15

đặn nó ra ...

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

Kiểm tra đây để giải thích thêm hình thức câu hỏi khác! Share raw resource between apk's

4

thử điều này:

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

Khi tôi đã thử điều này, nó đã kéo hình ảnh từ ứng dụng của riêng tôi: - /. Evert thời gian tôi chạy nó, nó sẽ đi đến hình ảnh tiếp theo trong thư mục drawable. – user1190019

+0

đảm bảo bạn đang chuyển đúng tên gói của một ứng dụng khác? –

+0

vâng tôi. Những gì nó đang làm là hiển thị bản vẽ từ ứng dụng của tôi chứ không phải ứng dụng khác. Vì vậy, nếu tôi chọn hình ảnh thứ 6 trong danh sách các sản phẩm có thể kéo trong gói đã chọn, nó sẽ hiển thị hình ảnh thứ 6 trong danh sách drawables của tôi. Tôi chỉ đang cố gắng để hiển thị nó trong một ảo tưởng sai? Điều này có làm việc ... TEST.setImageDrawable (image); – user1190019

Các vấn đề liên quan