private int[] colors = new int[]{Color.RED,Color.GREEN,Color.BLUE};
/**
* 线性渲染
* @param canvas
*/
private void drawLinearGradient(Canvas canvas){
LinearGradient linearGradient = new LinearGradient(0,0,400,400,colors,null, Shader.TileMode.CLAMP);
paint.setShader(linearGradient);
canvas.drawRect(0,0,400,400,paint);
}
LinearGradient.jpg
/**
* 梯度渲染/渐变渲染
* @param canvas
*/
private void drawSweepGradient(Canvas canvas){
SweepGradient sweepGradient = new SweepGradient(200,200,colors,null);
paint.setShader(sweepGradient);
canvas.drawRect(0,0,400,400,paint);
}
SweepGradient.jpg
RadialGradient.jpg
/**
* 组合渲染
* @param canvas
*/
private void drawComposeShader(Canvas canvas){
BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);
SweepGradient sweepGradient = new SweepGradient(200,200,colors,null);
ComposeShader composeShader = new ComposeShader(bitmapShader,sweepGradient, PorterDuff.Mode.ADD);
paint.setShader(composeShader);
canvas.drawRect(0,0,1000,1000,paint);
}
ComposeShader.jpg