路径未完全填充OnDraw Android

时间:2014-04-07 12:47:26

标签: android paint draw shape

我正在研究我的活动形状,一个四边形。

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setStyle(Paint.Style.FILL_AND_STROKE);
    paint.setAntiAlias(true);

    paint.setColor(Color.parseColor("#ffffff"));

    paint.setAlpha(150);
    // paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.parseColor("#20ffffff"), Color.TRANSPARENT, Shader.TileMode.CLAMP));

    Point point1_draw = new Point(0, 0);
    Point point2_draw = new Point(DisplayUtil.getInstance().getScreenWidth() * 2, 0);
    Point point3_draw = new Point((DisplayUtil.getInstance().getScreenWidth()), (DisplayUtil.getInstance().getScreenHeight() / 8) * 5);
    Point point4_draw = new Point((DisplayUtil.getInstance().getScreenWidth() / 8) * 3, DisplayUtil.getInstance().getScreenHeight());
    Point point5_draw = new Point(0, DisplayUtil.getInstance().getScreenHeight());

    Path path = new Path();
    path.setFillType(Path.FillType.EVEN_ODD);
    path.moveTo(point1_draw.x, point1_draw.y);
    path.lineTo(point2_draw.x, point2_draw.y);
    path.lineTo(point3_draw.x, point3_draw.y);
    path.lineTo(point4_draw.x, point4_draw.y);
    path.lineTo(point5_draw.x, point5_draw.y);
    path.lineTo(point1_draw.x, point1_draw.y);
    path.close();

    canvas.drawPath(path, paint);
}

我的问题是第2点: 边缘屏幕处的填充停止并且不完全填充形状。它停在 ScreenWidth 而不是 ScreenWidth * 2 只有她在屏幕上形状的可见部分呈现白色。

因此,当在形状上做一个TranslationX时,它会被切割..

任何人都知道如何强制绘制完整的形状,而不仅仅是它的可见部分?

0 个答案:

没有答案