美文网首页
Android高级渲染Shader(二)

Android高级渲染Shader(二)

作者: aruba | 来源:发表于2020-01-07 09:32 被阅读0次

除了BitmapShader外,还有几种渲染

1.LinearGradient--线性渲染
参数
  • float left 渲染区域的左坐标
  • float top 渲染区域的上坐标
  • float right 渲染区域的右坐标
  • float bottom 渲染区域的下坐标
  • float colors[] 渲染的颜色数组
  • float positions[] 对应颜色数组的显示位置,取0-1小数,为空时均分
  • TileMode tile 拉伸模式
   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--渐变渲染/梯度渲染
参数
  • float cx 渲染区域的X坐标
  • float cy 渲染区域的Y坐标
  • float colors[] 渲染的颜色数组
  • float positions[] 对应颜色数组的显示位置,取0-1小数,为空时均分
    /**
     * 梯度渲染/渐变渲染
     * @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--环形渲染
参数
  • float cx 渲染区域的圆心X坐标
  • float cy 渲染区域的圆心Y坐标
  • float radius 渲染圆形半径
  • float colors[] 渲染的颜色数组
  • float positions[] 对应颜色数组的显示位置,取0-1小数,为空时均分,最大位置参照半径,超过半径显示最后一个颜色
  • TileMode tileMode 拉伸模式


    RadialGradient.jpg
4.ComposeShader--组合渲染
参数
  • Shader shaderA 渲染效果A
  • Shader shaderB 渲染效果B
  • PorterDuff.Mode mode 组合模式
    /**
     * 组合渲染
     * @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

相关文章

网友评论

      本文标题:Android高级渲染Shader(二)

      本文链接:https://www.haomeiwen.com/subject/peqlactx.html