我们首先需要了解一下,android自身是如何调用未加载到的图片。首先,在\frameworks\base\core\res\assets\webkit包含了资源missingImage.png,这就是最后会显示到页面的出错图片,该图片的调用则是在external\webkit\Source\WebCore\loader\cache中的cachedImage.cpp中的static Image* brokenImage()函数中取出,该函数是被下面的Image* CachedImage::image() const函数调用的。
如果我们需要替换该图片,只需要把\frameworks\base\core\res\assets\webkit中的missingImage.png文件替换成自己想要的图片,之后重新编译framework之后替换编译出的framework.jar文件即可。
如果需要默认屏蔽该文件显示,在Image* CachedImage::image() const函数的函数中调用brokenImage函数的语句如下,
if (errorOccurred() && m_shouldPaintBrokenImage)
return brokenImage();
所以我们只要在初始的位置CachedImage()函数中把m_shouldPaintBrokenImage的初始值置为false。
如果希望无论在何种情况下,都不要出现该图片,可以直接在image函数中屏蔽调用brokenImage的语句即可。