2015-06-05 43 views
-3

我想声明一个新的位图,但我有一些图像的名称,R.raw.XXXXXXX, ,我不想创建一个可怕的开关与所有posibilities ...任何想法?用字符串中的资源名称声明一个位图

例如: 位图bitAnimal = BitmapFactory.decodeResource(getResources(),myString);

谢谢!

回答

0

你可以做这样的事情我想:

Bitmap bm = BitmapFactory.decodeResource(getResources(), getId(myString, myClass); 

public static int getId(String resourceName, Class<?> c) { 
    try { 
     Field idField = c.getDeclaredField(resourceName); 
     return idField.getInt(idField); 
    } catch (Exception e) { 
     throw new RuntimeException("No resource ID found for: " 
       + resourceName + "/" + c, e); 
    } 
}