Android自定义view之paint.setShader()方法

      前面两篇我们讲了canvas的一些方法,今天我们来看下paint的setShader方法。

      那么shader是什么呢?听听android怎么说:“Shader is the based class for objects that return horizontal spans of colors during drawing. A subclass of Shader is installed in a Paint calling paint.setShader(shader). After that any object (other than a bitmap) that is drawn with that paint will get its color(s) from the shader.”大概意思大概是shader是一个在绘制过程中返回水平跨度即水平方向颜色的基础类,就是说它是一种颜色的变化过程而不是一种具体的颜色,当paint调用了paint.setShader(shader)时候就会创建一个shader的子类设置给画笔。在设置之后除了bitmap的任何对象在用画笔绘制的时候都由shader告诉其颜色该怎么绘制。是的,我们都用shader的子类来设置给画笔,我们下面就看看shader的五种子类。

  1. LinearGradient(float x0, float y0, float x1, float y1,@ColorInt int color0, @ColorInt int color1,@NonNull TileMode tile):这个shader是线性的颜色渐变,来看参数(x0,y0)和(x1,y1)两个坐标,因为是水平方向的,所以说渐变颜色线开始的位置就是从(x0,y0)做一条跟x轴平行的直线,渐变颜色线结束的位置就是从(x1,y1)做一条跟x轴平行的直线,这两条直线之间的区域(当然这个区域也是在我们绘制的图形内部的)就是颜色渐变的区域,color0是渐变的起始颜色,color1是渐变的结束颜色,我们有这么一个shader对象,Shader shader = new LinearGradient(200, 0, 200, 400, Color.BLUE, Color.RED, Shader.TileMode.CLAMP)且用设置了这个shader对象的paint绘制了一个圆canvas.drawCircle(200, 200, 200, paint),咱们运行看下效果:

    我们渐变的开始颜色是蓝色,渐变的结束颜色是红色,然后我们绘制的圆心是在ÿ
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值