关于指定默认头像图片资源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回答

Qiujuer

2019-01-21

的确没有依赖啊~ 这个其实要从Android的资源系统讲起。

Common 本身并不知道具体的资源,但是他想要拥有一个资源,这个资源由后面的APP提供,但是Common并不知道是啥啊,所以他自己就说我定义了一个名字:default_portrait;如果你后面提供具体的资源的时候请继续使用这个名字即可。


然后Common在ids.xml下申明了这个资源,资源本身并不存在,但是会生成对应的R文件,此时Common中就可以使用这个R文件对应的资源了,尽管这个资源还不存在;我们叫占位。


当APP具体提供这个资源的时候,他也起这个名字,此时;APP下也会生成一个R文件;但是当进行打包时,两者会进行合并。合并后R文件只有一个;名字又没变。



所以APP就能通过这个名字去找到这个资源。



这与module的依赖没有关系。


1
2
Qiujuer
回复
慕侠9374910
不客气,明白了就好。
2019-01-22
共2条回复

手把手开发完整的即时通讯App 客户端+服务端+MVP架构

客户端+服务端+MVP架构+封装思想+主流框架

1749 学习 · 872 问题

查看课程