Comment remplir un chemin dans Android avec un dégradé linéaire?

Étant donné que le résultat de l’object Chemin d’access est le suivant:

entrer la description de l'image ici

Bien que ce soit un rectangle, je recherche quelque chose qui fonctionne avec n’importe quel chemin fermé.

Alors que la réponse de steelbytes vous donnera probablement plus de contrôle sur les différentes sections du dégradé, vous pouvez le faire sans le chemin:

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); } 

cela peut aider

 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); }