簡體   English   中英

使用字符串訪問Android可繪制資源

[英]Accessing Android drawable resource with a string

如果這看起來真的很簡單,我深表歉意,但我無法弄清楚。 我有一個ImageButton,我想在運行時基於按鈕單擊來更改其圖像。 我的res文件夾中有5張圖像。 當用戶單擊“下一步”按鈕時,我希望它轉到下一張圖像。 圖像的文件名是image1.png,image2.png等。

我知道我可以通過以下方式更改圖像:

imgButton.setImageResource(R.drawable.image2);

我有一個計數器(int)來跟蹤顯示的圖像編號。 但是如何將圖像更改為下一個圖像? 任何幫助,將不勝感激。

創建一個整數數組來保存對圖像的引用,例如

int[] images = new int[5];
images[0] = R.drawable.image001;
images[1] = R.drawable.image002;
images[2] = R.drawable.image003;
images[3] = R.drawable.image004;
images[4] = R.drawable.image005;

然后在每次點擊時增加計數器,並使用數組中的值設置圖像資源:

imgButton.setImageResource(images[counter]);

當您知道如何時就很容易...;)

您可以使用反射來基於字符串文件名獲取圖像的ID。

Field f = R.getClass().getField("image2");
int id = f.getInt(null); // use null for static fields
imgButton.setImageResource(id);

編輯:或者正如提到的另一個問題 ,您可以使用getIdentifier()向資源詢問ID。 這比通過靜態const慢,但可能對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM