Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未完全填充的路径_Android_Paint_Draw_Shape - Fatal编程技术网

Android 未完全填充的路径

Android 未完全填充的路径,android,paint,draw,shape,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

我在活动中使用一个形状,一个四边形

@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);
}
我的问题是第二点: 填充停止在边缘屏幕,不会完全填充形状。它停在ScreenWidth而不是ScreenWidth*2 只有她在屏幕上的可见部分是白色的

因此,当在形状上执行TranslationX时,它会被剪切


有人知道如何强制绘制整个图形,而不仅仅是图形的可见部分吗?

您做了什么使所讨论的画布比屏幕大?您完全可以绘制一个位图,大小由您选择,然后布拉特到该画布。Point point2_draw=新点(DisplayUtil.getInstance().getScreenWidth()*2,0);这意味着画布将在屏幕之外绘制是的,但是您是否希望画布会扩展,因为您要求它在其边界之外绘制?“边缘屏幕上的填充停止”它还能做什么?