Paint paint.setShader 着色器

来源:互联网 发布:淘宝直播镜像怎么安装 编辑:程序博客网 时间:2024/06/03 21:07
Shader  ---着色器,Canvas的drawXXXX这个方法是画具体的形状,画笔的shader定义的就是图形的着色和外观

BitmapShader--位图图像渲染,用BitMap对绘制的图形进行渲染着色,简单来说是用图片对图形进行贴图
圆形头像,放大镜效果

TileMode 拉伸形式
CLAMP --是拉伸最后一个像素铺满
MIRROR ---是横向纵向不足处不断翻转镜像平铺

REPEAT ---类似电脑壁纸,横向纵向不足的重复放置


LinearGradient--线性渲染 
霓虹灯文字,倒影图片


SweepGradient----渐变渲染/梯度渲染


雷达扫描效果


RadialGradient----环形渲染
水波纹效果


ComposeShader----组合渲染


/** * 位图图像渲染 BitmapShader用法 * TileMode.CLAMP 拉伸最后一个像素去铺满剩下的地方 * TileMode.MIRROR 通过镜像翻转铺满剩下的地方。 * TileMode.REPEAT 重复图片平铺整个画面(电脑设置壁纸) *///画个圆形头像paint.setStrokeWidth(0);paint.setColor(Color.RED);paint.setStyle(Paint.Style.FILL_AND_STROKE);BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.MIRROR, Shader.TileMode.MIRROR);//矩阵可以缩放这个图片Matrix matrix = new Matrix();matrix.setScale(0.5f,0.5f);bitmapShader.setLocalMatrix(matrix);paint.setShader(bitmapShader);int dia = bitmap.getWidth() > bitmap.getHeight()? bitmap.getHeight() :bitmap.getWidth(); //直径canvas.drawCircle(bitmap.getWidth()/2,bitmap.getHeight()/2,dia/2,paint);
/** * 线性渐变 LinearGradient用法  可用于霓虹灯文字,倒影图片 * x0, y0, 起始点 *  x1, y1, 结束点 * int[]  mColors, 中间依次要出现的几个颜色 * float[] positions,数组大小跟colors数组一样大,中间依次摆放的几个颜色分别放置在那个位置上(参考比例从左往右) *    tile */LinearGradient linearGradient = new LinearGradient(0,0,500,0,mColors,null, Shader.TileMode.REPEAT);paint.setShader(linearGradient);canvas.drawRect(0,0,1200,500,paint);/** * 渐变渲染/梯度渲染  SweepGradient  用于雷达扫描效果 */SweepGradient sweepGradient = new SweepGradient(500,500,mColors,null);paint.setShader(sweepGradient);canvas.drawCircle(500,500,100,paint);canvas.drawRect(0,0,200,200,paint);/** * 环形渲染 RadialGradient----水波纹效果 */RadialGradient radialGradient = new RadialGradient(500,500,500,mColors,null, Shader.TileMode.MIRROR);paint.setShader(radialGradient);canvas.drawCircle(500,500,500,paint);/** * 组合渲染 ComposeShader */ComposeShader composeShader = new ComposeShader(bitmapShader,radialGradient, PorterDuff.Mode.MULTIPLY);paint.setShader(composeShader);canvas.drawRect(0,0,1200,1200,paint);




原创粉丝点击