Добавление текста в представление - PullRequest
0 голосов
/ 12 июня 2018

Я рисую круг, используя вид, и анимировал его. Теперь я хочу добавить текст в этот круг со счетчиком. Для рисования круга я написал следующий код.

Circle.java

  public class Circle extends View {

private static final int START_ANGLE_POINT = 30;

private final Paint paint;
private final RectF rect;
private float angle;

public Circle(Context context, AttributeSet attrs) {
    super(context, attrs);
    final int strokeWidth = 5;
    paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeWidth(strokeWidth);
    paint.setColor(Color.RED);
    rect = new RectF(strokeWidth, strokeWidth, 100 + strokeWidth, 100 + strokeWidth);
    angle = 30;
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawArc(rect, START_ANGLE_POINT, angle, false, paint);
}

public float getAngle() {
    return angle;
}

public void setAngle(float angle) {
    this.angle = angle;
}
}

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

 new Canvas().drawText("",10,20,paint);

, но это было бесполезно. Пожалуйста, помогите мне добавить текстовое представление к этому круговому виду.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

попробуйте

public class Circle extends View {

    private static final int START_ANGLE_POINT = 30;

    private final Paint paint;
    private final RectF rect;
    private float angle;

    public Circle(Context context, AttributeSet attrs) {
        super(context, attrs);
        final int strokeWidth = 5;
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(strokeWidth);

        paint.setTextSize(30);
//        new Canvas().drawText("10", 5, 10,15, 30, paint);
        rect = new RectF(strokeWidth, strokeWidth, 100 + strokeWidth, 100 + strokeWidth);
        angle = 30;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.BLUE);
        canvas.drawArc(rect, START_ANGLE_POINT, angle, false, paint);
//        canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 200, paint);
        paint.setColor(Color.BLACK);
        paint.setTextAlign(Paint.Align.CENTER);

        canvas.drawText("10", 15, 30  , paint);

    }

    public float getAngle() {
        return angle;
    }

    public void setAngle(float angle) {
        this.angle = angle;
    }
}
0 голосов
/ 12 июня 2018
 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

 paint.setColor(Color.rgb(110, 110, 110));

 paint.setTextSize(whiteKeyTextSize);

 canvas.drawText(mText, start, end,x, y, paint);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...