在运行时绘制自定义视图

时间:2013-07-26 17:37:51

标签: android android-view

您好我无法理解如何在运行时绘制自定义视图。为简单起见,假设我有一个扩展View类的自定义视图(Box),基本上它所做的就是创建一个配置为在我的onDraw()方法中执行的方块。现在,我希望能够在活动中绘制此自定义视图,具体取决于用户是否单击活动上的按钮。

因此,如果用户单击按钮一次,则会绘制一个框,再次单击另一个框,可能会向下绘制10个像素等等。我搜索了一个解决方案,但我能找到的是人们使用预先制作的xml视图然后使用充气机,但如果用户没有按下按钮,我不想要预先绘制的盒子。

另一个快速问题:何时调用onDraw()或者我必须显式调用

Box box = new Box();
box.onDraw(canvas);

Eclipse说这是一个可疑的电话,我同意。

1 个答案:

答案 0 :(得分:2)

要制作自定义视图,您必须扩展View类并覆盖onDraw方法。然后,当您想要绘制此视图时,必须将其添加到视图层次结构中。这很简单view.add(new Box()),其中view是您的根视图,这样Android系统就会在每个渲染周期中自行调用onDraw方法。有关更多信息,请参阅official documentation