在Rect中向左移动后,笔触的一个边缘变大

时间:2019-01-28 07:48:50

标签: android android-paint

我尝试为我的视图创建一个笔触,如果left和top为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 :(得分:0)

我刚刚找到了解决方案。它不大。默认情况下,中风不会显示
如果我喜欢这样,整个笔画都可以显示

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

enter image description here