android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器

本文深入探讨BitmapShader类在图像渲染中的应用,包括不同TileMode模式下的效果对比:CLAMP模式的边缘拉伸,MIRROR模式的镜像重复,以及REPEAT模式的无缝平铺。通过示例代码展示了如何设置Shader并应用于Paint对象上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BitmapShader位图的图像渲染器

TileMode 模式

Shader.TileMode.CLAMP        边缘拉伸.
Shader.TileMode.MIRROR       在水平方向和垂直方向交替景象, 两个相邻图像间没有缝隙.
Shader.TileMode.REPEAT       在水平方向和垂直方向重复摆放,两个相邻图像间有缝隙缝隙.

构造方法

/**
  * 调用这个来创建一个新的着色器,它将用一个位图绘制
  * @param 用来做模板的 Bitmap 对象 
  * @param 横向的 TileMode 
  * @param TileMode。
  */
public BitmapShader(@NonNull Bitmap bitmap, @NonNull TileMode tileX, @NonNull TileMode tileY) {
   this(bitmap, tileX.nativeInt, tileY.nativeInt);
}

简单使用 Shader.TileMode.REPEAT

    //Paint
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    //图片
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
    BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    paint.setShader(bitmapShader);
    //绘制
    canvas.drawRect(0,0,getWidth(),getHeight(),paint);

Shader.TileMode.CLAMP 效果

这里写图片描述

Shader.TileMode.MIRROR 效果

这里写图片描述

Shader.TileMode.REPEAT 效果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值