我正在创建一个需要在画布上绘制文本的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);
}