自定义视图onDraw方法

时间:2011-12-01 09:32:46

标签: android view

我想制作一个自定义视图,因此我扩展了View类并覆盖了onDraw(Canvas canvas)方法。

问题是,我发现该方法永远不会被调用。

似乎在另一个视图上调用View.invalidate会导致此视图重绘为。

我无法在此处发布代码,因此我尝试仅描述相关部分。

在活动中我创建了一个FrameLayout m_mainLayout,这是我最终传递给setContentView()方法的那个。

我向m_mainLayout添加了不同的视图和布局,其中一个是GameView m_gameView,其扩展为View,另一个GameFrameView扩展为RelativeLayout,我添加了视图问题。

现在,我经常打电话(每100毫秒)m_gameView.invalidate()

如何重新绘制其他视图?

我需要做些什么来阻止这种情况?

1 个答案:

答案 0 :(得分:0)

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas); <-- add this
    int width = canvas.getWidth();
    int height = canvas.getHeight();
    Log.i("AttackDialogView", "onDraw "); 
}