Как я могу передать int моему onDraw (Canvas canvas) в Android? - PullRequest
1 голос
/ 06 июня 2011

Я использую вид поверхности для рисования круговой диаграммы в Android. Чтобы узнать, насколько большим должен быть кусок пирога, мне нужно передать параметр в метод onDraw (). Как я могу это сделать? Внутри onDraw () я делаю запрос к классу datahelper, который выбирает правильные данные.

Я попытался вызвать статическую функцию в одном Activity из onDraw, и какая функция вернула целое число. Но я хочу что-то более динамичное, поэтому я могу отправить нужные мне целые числа из Activity в onDraw и просто получить результат в виде круговой диаграммы.

Есть предложения?

1 Ответ

2 голосов
/ 06 июня 2011

Одно из решений может быть таким:

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

}
...