首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

判断资源存在也罢如判断一个drawable的图片存在及通过id加载图片

2012-09-21 
判断资源存在与否如判断一个drawable的图片存在及通过id加载图片其实这个问题在我的以前的琐碎里已经记录

判断资源存在与否如判断一个drawable的图片存在及通过id加载图片

其实这个问题在我的以前的琐碎里已经记录过了

现在拿出来 免得到时候需要的人在找

int i=? getResources().getIdentifier("icon", "drawable", getPackageName()) ;
????? if(i>0)
????? {Log.i("aa","aa");}
????? else
????? {Log.i("vbv","aa");}

?

或者

?int resID = getResources().getIdentifier("org.loveandroid.androidtest:drawable/gallery_photo_1",null,null);

?

第一个参数其实full_package:type/filename_without_ending是这种格式 然后其他的可以为null
int idFlag = getResources().getIdentifier(         getPackageName() + ":drawable/flag",          null, null);   // 或是   int idFlag = getResources().getIdentifier(         "flag", "drawable", getPackageName());  
?
var Drawable[] dw = new Drawable[10];     for (int i = 1; i <= 10; i++) {     int id = getResources().getIdentifier(                       "flag" + i,                        "drawable", getPackageName());     dw[i-1] = getResources().getDrawable(id);   }
?用反射发 可以得到 所有的资源
private void      _DumpAllResourceIDs(Class<?> classType)        throws IllegalArgumentException {     Field[] fIDs = classType.getFields();                try {       for (int i = 0; i < fIDs.length; i++) {         Field fld = fIDs[i];         int nID = fld.getInt(null);         Log.d("dbg",           classType.getSimpleName() + " " +            i + ": " +            fld.getName() + "=" +           nID);       }     } catch (Exception e) {       throw new IllegalArgumentException();     }   }  
?
import java.lang.reflect.Field;   ...     _DumpAllResourceIDs(R.layout.class);     _DumpAllResourceIDs(R.drawable.class);  
?结果
R$layout 0: main=2130903040  R$layout 1: small_spinner_dropdown_item=2130903041  R$drawable 0: icon=2130837504  
?

热点排行