Один край хода больше после изменения левого в Rect - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь создать обводку для моего вида, и она хорошо работает, если левый и верхний - 0. После изменения прямоугольника left обводка левого края больше, чем обычно.Например, я установил left на 10

public class SimpleView  extends View {
    Paint paint = new Paint();
    RectF bodyRect = new RectF();
    ...

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        bodyRect = new RectF(10, 0, getWidth(), getHeight());

        paint.setColor(Color.WHITE);
        paint.setStrokeWidth(20);
        paint.setStyle(Paint.Style.STROKE);
        canvas.drawRect(bodyRect,paint);
    }
}

xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    android:background="#000">

    <...SimpleView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_margin="50dp"
        android:background="#f00" />

</LinearLayout>

левый ход больше

enter image description here

Если Я использую

bodyRect = new RectF(0, 0, getWidth(), getHeight());

enter image description here
результат выглядит хорошо

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 28 января 2019

Я просто нахожу решение.Это не больше.Штрих по умолчанию не отображает FULL
Если мне это нравится, весь ход может отображаться

bodyRect = new RectF(10, 10, getWidth()-10, getHeight()-10); // 10 = strokeWidth/2

enter image description here

...