我刚开始学习Android开发,正在阅读文档并尝试使用API。我很困惑ImageView在调用invalidate(Rect)后是如何只绘制其部分内容的。
我查看了ImageView.java文件,除了onDraw(Canvas)方法外没有找到其他绘图方法,但是onDraw(Canvas)方法只会裁剪Drawable对象,如果它超出了视图的可见边界。
我还阅读了View.invalidate(Rect)方法的实现,我认为这个函数的关键在于调用 mParent.invalidateChild(this, r); 然而,我认为父视图不知道如何在给定的Rect中绘制子视图,最终必须调用其子视图的某些方法来绘制出来。
有人研究过这部分代码吗?你能给我一些指导吗?