紧接上一篇 Android App启动时Apk资源加载机制源码分析 分析App启动时是如何加载初始化资源之后,接下来分析开发过程中调用显示资源View的Api接口(如设置背景图片)具体是如何把启动时加载好的图片显示出来。上篇讲的启动时候加载资源只是把资源初始化准备好,而这篇是将具体实际显示资源时候,是如何把启动时准备好的res资源加载出来供View显示。可以说上篇就是AssetManager实现了全部相关资源加载的第一步,这篇要讲的就是Resources是如何把获取相应id的具体资源加载出来。
在View及子View中提供很多资源显示的Api,下面具体就图片资源文件和Xml文件加载来分别讲述其源码实现原理以及相关可以学习的技巧。
###加载背景图片资源的源码实现分析
开发中设置加载背景图片,只需要通过Api即可完成,如View设置背景和ImageView设置,接下来具体分享实现:
View加载背景图片
public void setBackgroundResource(@DrawableRes int resid) {
if (resid != 0 && resid == mBackgroundResource) {
return;
}
Drawable d = nul