当我恢复我的Android应用程序时,文本的位置发生了变化

时间:2014-06-20 07:26:02

标签: android android-canvas android-custom-view android-4.4-kitkat

我正在创建一个需要在画布上绘制文本的Android应用程序。我在自定义视图中绘制该文本。因此,使用canvas类的drawtext()在该自定义视图的onDraw()中绘制文本。

问题在于通常文本位置完美。但每当我按下主页按钮并再次恢复应用程序时,绘制文本的位置就会发生变化。问题似乎只适用于KitKat。

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    Utility Utility = new Utility();

    canvas.drawCircle((radiusOfCircle + margin), (radiusOfCircle + margin),
            radiusOfCircle, paint);

    endPath.moveTo((2*radiusOfCircle + margin), (radiusOfCircle + margin));
    linePaint.setColor(Color.GRAY);
    endPath.lineTo(stopX, (radiusOfCircle + margin));
    canvas.drawPath(endPath, linePaint);


    linePaint.setColor(Color.parseColor(color));


    progressPath.moveTo((2*radiusOfCircle + margin),
            (radiusOfCircle + margin));
    progressPath.lineTo(stopOfProgress, (radiusOfCircle + margin));
    canvas.drawPath(progressPath, linePaint); 
    canvas.drawCircle((radiusOfCircle + margin), (radiusOfCircle + margin),
            radiusOfCircle, paint);
    paint.setStrokeWidth(textStrokeWidth);

    int xPos = radiusOfCircle;
     int yPos = (int) ((radiusOfCircle+ margin) - (Utility.heightRatio((progressTextColor.descent() + progressTextColor.ascent()) / 2, context))) ; 

     progressTextColor.setColor(Color.WHITE);
     progressTextColor.setTextSize(Utility.heightRatio(10, context));
     canvas.drawText(circleText, xPos-Utility.heightRatio(3, context), yPos-Utility.heightRatio(1, context), progressTextColor);


}

0 个答案:

没有答案