我是 Android 开发的新手,只是阅读文档并尝试 API。我很困惑 ImageView 如何在 invalidate(Rect) 调用之后设法仅绘制其内容的一部分。
我检查了 ImageView.java,发现除了 onDraw(Canvas) 之外没有其他绘图方法,但 onDraw(Canvas) 仅在它超出视图的可见边界时才剪切可绘制对象。我还阅读了 View.invalidate(Rect) 的实现,我认为这个函数的关键是调用 mParent.invalidateChild(this, r); 但是,我认为父视图不知道如何在给定的 Rect 中绘制孩子,它最终必须调用它的一些方法来绘制孩子。
有人调查过这部分代码吗?你能给我一些指导吗?