Paint paint.setShader 着色器
来源:互联网 发布:淘宝直播镜像怎么安装 编辑:程序博客网 时间:2024/06/03 21:07
Shader ---着色器,Canvas的drawXXXX这个方法是画具体的形状,画笔的shader定义的就是图形的着色和外观
BitmapShader--位图图像渲染,用BitMap对绘制的图形进行渲染着色,简单来说是用图片对图形进行贴图
圆形头像,放大镜效果
TileMode 拉伸形式
CLAMP --是拉伸最后一个像素铺满
MIRROR ---是横向纵向不足处不断翻转镜像平铺
LinearGradient--线性渲染
霓虹灯文字,倒影图片
SweepGradient----渐变渲染/梯度渲染
雷达扫描效果
RadialGradient----环形渲染
水波纹效果
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);
阅读全文
0 0
- Paint paint.setShader 着色器
- Android 使用Paint的setShader填充图形
- 详解Paint的setShader(Shader shader)
- 详解Paint的setShader(Shader shader)
- paint
- Paint
- paint
- Paint
- Paint
- Paint
- paint
- paint
- paint
- paint
- Paint
- Paint paint 参数
- Canvas&Paint[]Paint
- 为Paint设置渐变器
- SQL 语句中output参数的使用 很实用!
- C#:异步编程和线程的使用(.NET 4.5 )
- 四元数与旋转——学习笔记(二)
- 数组划分
- Float、double和Bigdecimal的区别
- Paint paint.setShader 着色器
- Android Webview使用
- 更改mysql字段的编码为utf8mb4
- Git Clone报错git did not exit cleanly (exit code 128)
- Java-继承
- nginx匹配规则说明以及匹配的优先级
- 动态添加瀑布流布局
- CentOS 7下sqlite3的问题修复
- 集成Dubbo服务(Spring)