2011-06-30 24 views
1

因此,我首先解釋一下默認情況:用戶可以選擇一張圖片 - 並且該圖片由字符串(例如「picture1」)保存在屬性文件中。現在我不想通過從屬性文件加載字符串並通過R.drawable.MYPICTURE從我的Drawables資源中獲取圖像來顯示圖片。通過字符串調用可繪製資源

這是我的工作了:

String iconsString[] = {"default", "icon"}; 
    int iconsResource[] = {R.drawable.default, R.drawable.icon}; 

    int iconResourcePosition; 
    int iconsStringLength = iconsString.length; 
    for (int i = 0; i < iconsStringLength; i++) { 
     if (iconsString[i] == mProperties.getProperty("icon")) { 
      iconResourcePosition = i; 
     } else { 
      iconResourcePosition = 0; 
     } 
    } 
    btn_profileIcon.setBackgroundDrawable(iconsResource[iconResourcePosition]); 

但它不工作,因爲「.setBackgroundDrawable」不接受INT-值。那麼,那就是我卡住的地方。我可以使「iconsResource []」成爲「可繪製」而不是「int」,但這會導致其他問題:

感謝您的幫助!

回答

0

使用BitmapFactory.decodeResource(...)存儲可重用的位圖,然後在您的ImageView(或派生)上使用setImageBitmap(...)。

+0

@JustBasti:它爲你工作? – Renaud

3

MMMM你不希望做這樣的事情:

btn_profileIcon.setBackgroundResource(iconsResource[iconResourcePosition]); 
+0

謝謝x'D愚蠢的錯誤! – JustBasti

+0

聽起來很有趣,但該方法通過查看並設置背景,而不是包含的圖像(來自ImageView)。值得一試。 – Renaud

+0

@JustBasti不客氣:)我會在另一個時間做出同樣的錯誤^^ @Renaud,好吧你看起來你是對的,我認爲最主要的區別是背景會調整視圖的大小,而不是包含的圖像,不一樣的用途我猜:) – Climbatize