2011-06-06 113 views
1

我使用Surfaceview在Android中绘制饼图。为了知道饼图应该有多大,我需要传递一个参数给onDraw()方法。我怎样才能做到这一点?在onDraw()中,我向查询正确数据的datahelper类发出查询。如何在Android中将int传递给我的onDraw(Canvas画布)?

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

有什么建议吗?

回答

2

One解决方案可以是这样的:

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)); 

} 
+0

这个工作。我没有得到它与一个整数作为参数,所以我使用了一个字符串,是它是如何或应该我能够做一个转换?无论如何感谢一个快速和有用的答案! – kakka47 2011-06-06 17:59:49

+0

其实你可以使用MyParameter Parcelable对象,并把那里,int,String等。 – barmaley 2011-06-07 03:56:52

+0

嗨!我想知道如果你可能知道我可以如何使用这种方式在onTouchEvents期间将参数传递给我的SurfaceView?这甚至有可能吗?如果我希望在MotionEvent.ACTION_MOVE中更新此参数。 – kakka47 2011-06-14 21:03:44

相关问题