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);这意味着画布将在屏幕之外绘制是的,但是您是否希望画布会扩展,因为您要求它在其边界之外绘制?“边缘屏幕上的填充停止”它还能做什么?