Как сохранить холст в методе onDraw в Android? - PullRequest
1 голос
/ 08 ноября 2011

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

public void setMData(Float pData, Float cData, int i){


    this.pData = pData;
    this.cData = cData;
    this.i = i;

}

public void onDraw(Canvas canvas)

 {


    super.onDraw(canvas);
    canvas.restore();
    hs = getHeight();
    ws = getWidth();
    paint.setTextSize(15);
    paint.setColor(Color.parseColor("#00FFCC"));
    paint.setStrokeWidth(2);
    ox = 30;
    oy = hs - 30;
    canvas.drawLine(30, 30, 30, hs - 30, paint); // Vertical Line
    canvas.drawLine(30, hs - 30, ws - 30, hs - 30, paint); // Horizontal
    canvas.drawText("(0,0)", 10, hs - 10, paint);
    float secWidth = 20;// (ws-30)/mData.size();
    float pRatio = oy / 100 * pData;
    float cRatio = oy / 100 * cData;
    canvas.drawLine(secWidth * i, hs - pRatio, secWidth * (i + 1), hs - cRatio,paint);
    canvas.drawText("" + cData, secWidth * (i + 1), hs - cRatio, paint);
    canvas.save();
}

1 Ответ

0 голосов
/ 08 ноября 2011

попробуйте это:

int saveCount; //declare this as a field

saveCount = canvas.save();
.....
canvas.restoreToCount(saveCount);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...