今天要实现动态设置getDrawable的参数,正常getDrawable使用时getDrawable后面参数是R的地址,不过getDrawable接受的是int类型,也就是实际上是R的id,那么我们就不能直接把参数的路径设置为String变量了。
所以首先我们要把路径转换成R的对应id,如下:
Resources res=getResources();
int del = res.getIdentifier(type,"drawable",getPackageName());
其中getResources方法是来自于contenxt(也就是Activity类),它直接可以返回一个Resouces对象。
而Resouces的getIdentifier方法可以返回R.java中的任何资源id,三个参数第一个type就是图片名,第二个就是位置,第三个是包名,getPackageName()的话就是获取当前的包名,这里也就是R,然后我们就可以将del作为变量动态设置了。