如何在Android中将int传递给我的onDraw(Canvas画布)?

时间:2011-06-06 16:18:02

标签: android parameters ondraw

我使用surfaceview在Android中绘制饼图。为了知道切片应该有多大,我需要将参数传递给onDraw()方法。我怎样才能做到这一点?在onDraw()中,我查询了一个获取正确数据的datahelper-class。

我试图从onDraw调用一个Activity中的静态函数,哪个函数返回一个整数。但是我想要一些更动态的东西,所以我可以将我需要的整数从Activity发送到onDraw,然后以饼图的形式得到结果。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

其中一个解决方案可能是这样的:

public class MySurfaceView extends SurfaceView
{
    private MyParameter parameter;

    public void setParameter(MyParameter parameter)
    {
        this.parameter=parameter;
    }

    @Override
    public void onDraw(Canvas canvas)
    {
        if(this.parameter==null)
            return;  //nothing to draw...
        //draw here...
    }
}

//somewhere in code

MySurfaceView sView=(SurfaceView )findViewById(R.id.pie_chart);
//
sView.setParameter(new MyParameter(100,2000, false));

}