如何使用线性渐变填充Android中的path?

给定一个封闭的Path对象结果是这样的:

在这里输入图像说明

虽然这是一个矩形,我正在寻找一些适用于任何封闭的path。

虽然steelbytes的答案可能会给你更多的控制渐变的个别部分,你可以做到这一点没有道路:

protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); // start at 0,0 and go to 0,max to use a vertical // gradient the full height of the screen. p.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE, Shader.TileMode.MIRROR)); canvas.drawPaint(p); } 

这可能有帮助

 protected void onDraw(Canvas canvas) { super.onDraw(canvas); int w = getWidth(); int h = getHeight(); Paint p = new Paint(Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG); Path pth = new Path(); pth.moveTo(w*0.27f,0); pth.lineTo(w*0.73f,0); pth.lineTo(w*0.92f,h); pth.lineTo(w*0.08f,h); pth.lineTo(w*0.27f,0); p.setColor(0xff800000); p.setShader(new LinearGradient(0,0,0,h,0xff000000,0xffffffff,Shader.TileMode.CLAMP)); canvas.drawPath(pth,p); }