Android高级渲染Shader(二)

2020-01-07  本文已影响0人  aruba

除了BitmapShader外,还有几种渲染

1.LinearGradient--线性渲染
参数
   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
2.SweepGradient--渐变渲染/梯度渲染
参数
    /**
     * 梯度渲染/渐变渲染
     * @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
3.RadialGradient--环形渲染
参数
4.ComposeShader--组合渲染
参数
    /**
     * 组合渲染
     * @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

项目地址:https://gitee.com/aruba/ShaderApplication.git

上一篇下一篇

猜你喜欢

热点阅读