看板 AndroidDev 關於我們 聯絡資訊
常在寫Android的人應該對這段程式碼不陌生 Drawable swordD = getResources().getDrawable(R.drawable.pic001); Android有一套方法去管理自己的資源 裡面很常用R檔 為了在不同Activity中傳遞圖片 我也會把R的數值傳來傳去..... 甚至從SERVER叫Android顯示圖示時,也傳個int叫她顯示指定的icon 原本只有三、四十張而已 所以就一張張的設定檔名、圖片代碼的對對照表 private static final Map<Integer,Integer> drawableMap = new HashMap<Integer, Integer>(); static { drawableMap.put(-1, R.drawable.defult); drawableMap.put(1, R.drawable.pic1); drawableMap.put(2, R.drawable.pic2); ....... } 現在,發生悲劇了 圖片突然暴增到幾千張 請問有辦法處理這種狀況嗎? 想先找Android內部的方法 如果沒有的話,再去找JAVA的反射來用 (這個我沒用過.... 現在還在找範例) -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65 用反射解決了,才三行,歡樂 ﹨(╯▽╰)∕ Class ownerClass = R.drawable.class; Field field = ownerClass.getField("pic"+id); Integer rid=field.getInt(null); try...catch 略 ※ 編輯: LaPass 來自: 61.59.16.65 (08/15 12:16)
asilzheng:context.getResources().getIdentifier 08/15 12:45
LaPass:static中沒辦法拿到context,如果要改成那樣的話,要大修 08/15 12:47
givemepass:XD 這個問題我剛解過 也是用反射 08/15 13:24
weruioi:自定一個Application物件,在onCreate存一個instace在 08/16 23:46
weruioi:static filed就可以隨時拿到application context囉 08/16 23:47