dispatchDraw(Canvas画布)的使用
Posted
技术标签:
【中文标题】dispatchDraw(Canvas画布)的使用【英文标题】:Use of dispatchDraw(Canvas canvas) 【发布时间】:2012-08-09 08:15:15 【问题描述】:ViewGroup类中的dispatchDraw(Canvas canvas)方法有什么用??
【问题讨论】:
【参考方案1】:来自 android 文档 - protected void dispatchDraw (Canvas canvas)
:
由 draw 调用以绘制子视图。这可能会被派生类覆盖,以便在绘制其子级之前(但在绘制其自己的视图之后)获得控制。
【讨论】:
那是你应该画的地方,是的。draw(Canvas canvas)
发起绘制; onDraw(Canvas canvas)
是绘图的地方; dispatchDraw(Canvas canvas)
是告诉 ViewGroup
的孩子被绘制。【参考方案2】:
例如,ViewGroup
是 Linear-、Relative-、FrameLayout-、AbsoluteLayout 的 Parent。 1
由于 ViewGroup 类是抽象的,直接创建实例是不可能的。 您可以使用 1 从这里,功能:
dispatchDraw(Canvas canvas)
由于未知原因,第 1 类无法使用
onDraw(Canvas canvas)
绘图
dispatchDraw(Canvas canvas)
可能属于第 1 类,创建 UI 很有趣。
看起来像这样:
/////
public class MainActi extends MyLinearLayout.
public MainActi(Context con...
super(cont...)
MyLinearLayout extends LinearLayout
@Override protected void dispatchDraw(Canvas canvas)
canvas.drawColor(Color.YELLOW);
... ///
或者你跳回用
onDraw(Canvas canvas)
在MainActivity
“视图”中扩展或在外部类中引用它,如下所示:
MyMelIsDrawing extends View
onDraw(Canvas canvas)
//now draw...
【讨论】:
请修正这个英文以上是关于dispatchDraw(Canvas画布)的使用的主要内容,如果未能解决你的问题,请参考以下文章