我尝试为我的视图创建一个笔触,如果左和上均为0,则效果很好。
更改left rect后,左边缘笔触比正常笔触大。
例如,我将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>


左笔划更大

android - 更改Rect中的左侧后,笔触的一个边缘变大-LMLPHP

如果我使用

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


android - 更改Rect中的左侧后,笔触的一个边缘变大-LMLPHP
结果看起来不错

任何帮助将不胜感激。

最佳答案

我只是找到解决方案。它不大。默认情况下,中风不显示为FULL
如果我这样,可以显示整个笔画

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


android - 更改Rect中的左侧后,笔触的一个边缘变大-LMLPHP

10-08 03:18