0

我的项目现在实际上有很多行代码,所以我会通过只在此处包含重要的内容来节省您的时间。我希望有足够的信息来说明问题。

我有两个主要类:一个“GraphView”类,然后是主 Activity 的代码。在 GraphView 中,我创建了一个函数,它本质上是在画布上绘制一个矩形。它被称为drawPixel。在 GraphView 的 onDraw 方法中,我多次调用 drawPixel,它在屏幕上绘制矩形。现在,在主代码中,我以编程方式创建了一个布局和一个按钮。我想要的是,我不想在 GraphView 的 onDraw 方法中调用 drawPixel,而是想在单击按钮时绘制这些矩形。我尝试这样做:

someButton.setOnClickListener(new View.OnClickListener() { 
    @Override
    public void onClick(View v) {
        Canvas canvas = new Canvas(); 
        // TODO Auto-generated method stub
            for (int i=1; i<50; i++) {
                someGraphView.drawPixel(canvas, i, i); 
            }
        }
});

它没有用。当我通过 onDraw() 调用时,矩形正确绘制,但是当我从 setOnClickListener 方法内部调用它们时,它们根本不绘制。有谁知道我做错了什么?

4

1 回答 1

1

一旦在你的视图上写了调用 invalidate() 。

于 2012-07-16T23:43:58.553 回答