2012-06-19 58 views
1

我目前正在爲android創建一個支付SDK,因此我想根據不同情況將一些圖片從sdk/library項目發送到實際應用程序。我希望應用程序的用戶使用drawable,但我不希望他們手動設置它(即直接從SDK的可繪製文件夾中獲取它),SDK應根據不同情況自動選擇要使用的圖像。Android:從圖書館項目繪製到應用程序

目前我有什麼是initilized當一個DAO類有類似:

case (MASTERCARD): 
    this._logo = getResources().getDrawable(R.drawable.mastercard_securecode); 

,然後在應用我想能夠獲取該繪製並在這樣一個ImageView的使用它:

img.setImageDrawable(DAOObject.getLogo()); 

但是運行這個時,我得到

06-15 20:25:18.933:W/dalvikvm(625):VFY:無法RESOLV LPackagePath/R $ drawable中的e靜態字段6(mastercard_securecode);

後跟一個空指針異常,因爲由於上述錯誤,getLogo將返回null。

任何人都知道如何正確實現這一點,所以我沒有得到上述錯誤,並仍然能夠以這種方式實現它應用程序獲取drawable動態發送這樣的?

任何幫助非常感謝!

+0

switch case語句中的setter方法在哪裏?有些像DAOObject.setLogo() – Venky

+0

這樣的switch case語句被放置在DOAObjects構造函數中,所以我只是直接訪問本地_logo變量。 – AzaraT

+0

您是否使用最新版本的Android SDK工具? – CommonsWare

回答

1

好吧,所以我終於明白了這一點。

問題確實是上下文。我需要通過從應用程序到SDK的環境,然後我可以做

context.getResources().getDrawable(R.drawable.mastercard_securecode); 

獲得的圖像適當其次我需要導入一個庫項目的jar文件,然後在第二個庫中導入圖像項目,以便它自己的SDK是封閉的源碼,但我仍然有可用的資源。