我可以在onLraw of MyLayout中添加addView吗?

时间:2012-04-10 16:48:33

标签: android

我是Android新手。我想在onDraw中添加图像按钮。我想知道我能不能这样做。我没有编译错误。但模拟器说,“不幸的是MyApp已经停止了。” 我的第二个问题是如何在屏幕的x,y位置添加按钮? addView中没有位置参数。

protected class MyLayout extends LinearLayout {
    ImageButton button;
    public MyLayout(Context context) {
        super(context);
        setWillNotDraw(false);
        button = new ImageButton(context);
        button.setImageBitmap(buttonBitmap); // buttonBitmap is loaded in onCreate
    }
    public void onDraw(Canvas canvas) {
        addView(button);
    }
}

1 个答案:

答案 0 :(得分:0)

我不会在onDraw()覆盖函数中向自定义linearlayout添加按钮。定期调用onDraw(例如,调整元素大小时)。因此,您将在每次调用onDraw()时添加相同的按钮。如果您多次添加相同的项目,您将收到错误。

你到底想要做什么?如果您只想将一个按钮添加到线性布局,则可以在不扩展布局的情况下执行此操作。