关于指定默认头像图片资源id来源
来源:4-3 主界面搭建外层封装-3
慕侠9374910
2019-01-21
在activity_main中,对android:src="@drawable/default_portrait"使用Ctrl+B跳转时,为什么跳转到了common包下ids.xml的<item name="default_portrait" type="drawable" />
,而不是app包下对应的drawable资源?为什么写一个这样的item就可以从common包下访问到app包下的同名资源,不是没有反依赖吗
写回答
1回答
-
的确没有依赖啊~ 这个其实要从Android的资源系统讲起。
Common 本身并不知道具体的资源,但是他想要拥有一个资源,这个资源由后面的APP提供,但是Common并不知道是啥啊,所以他自己就说我定义了一个名字:default_portrait;如果你后面提供具体的资源的时候请继续使用这个名字即可。然后Common在ids.xml下申明了这个资源,资源本身并不存在,但是会生成对应的R文件,此时Common中就可以使用这个R文件对应的资源了,尽管这个资源还不存在;我们叫占位。
当APP具体提供这个资源的时候,他也起这个名字,此时;APP下也会生成一个R文件;但是当进行打包时,两者会进行合并。合并后R文件只有一个;名字又没变。
所以APP就能通过这个名字去找到这个资源。
这与module的依赖没有关系。
122019-01-22
相似问题