1.在java代码中获取资源文件时,要根据方法中的参数的规定类型来获取和添加资源文件,比如:
设置ImageView.setImageResource(@DrawableRes int resId)时,参数已经规定了事DrawableRes类型的int型的值,则我们添加res时就需要将资源文件添加到res/drawable文件夹下,这样ADT在生成R文件时,将该资源文件的ID值设置在drawable对象下;如果将该资源文件添加到了其它资源目录下比如animation下,则通过R.anim.XXX传参时,IDE会报错,说该值不是形参规定的类型。虽然R文件中生成的资源ID都是int行的,但是它们在不同的对象下,IDEcheck时会去和形参前面的注解检查是否是该类型的数值,如果不是则IDE里会报错,但这个错误不是编译错误,在Android中还是可以编译通过并且可以运行的。有的地方会给出其它的解决方案,比如将R.anim.XXX改为+R.anim.XXX,那么IDEcheck也会通过,具体原因不知道为什么,也没找到官方的说明,经过其它测试,比如将R.anim.XXX改为0+R.anim.XXX或R.anim.XXX<<0或R.anim.XXX>>0等都会check通过,所以本人觉得前面的+号只是一个数学运算符的作用,经过运算后的数值不在属于R文件中的值,所以注解check也就不能辨认了。
以上的问题其实就是一个编码规范的问题。不管什么开发平台其实都有其规范,只是许多半路转入的开发人员往往忽视了这些规范。