1. 基本概念:
- Shader 是一个用于定义图形填充样式的基类。
- 它的子类包括:
- LinearGradient:线性渐变。
- RadialGradient:径向渐变。
- SweepGradient:扫描渐变。
- BitmapShader:位图图像纹理。
- 等等。
2. LinearGradient(线性渐变):
- LinearGradient 可以创建沿着一条直线的渐变效果。你需要指定渐变的起始点和结束点,以及颜色数组。
// 创建LinearGradient
int startColor = Color.RED;
int endColor = Color.BLUE;
Shader linearGradient = new LinearGradient(
startX, startY, // 渐变起始点坐标
endX, endY, // 渐变结束点坐标
startColor, endColor, // 起始颜色和结束颜色
Shader.TileMode.CLAMP // 渐变重复模式,这里使用 CLAMP 表示边缘颜色延伸
);
// 应用Shader到Paint
Paint paint = new Paint();
paint.setShader(linearGradient);
3. RadialGradient(径向渐变):
- RadialGradient 可以创建一个以中心为起点的径向渐变效果。
// 创建RadialGradient
float centerX = 100f;
float centerY = 100f;
float radius = 50f;
int startColor = Color.RED;
int endColor = Color.BLUE;
Shader radialGradient = new RadialGradient(
centerX, centerY, // 渐变中心坐标
radius, // 渐变半径
startColor, endColor, // 起始颜色和结束颜色
Shader.TileMode.CLAMP // 渐变重复模式
);
// 应用Shader到Paint
Paint paint = new Paint();
paint.setShader(radialGradient);
4. BitmapShader(图像纹理):
- BitmapShader 可以使用位图作为填充样式,创建图像纹理效果。
// 创建BitmapShader
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.texture_image);
Shader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
// 应用Shader到Paint
Paint paint = new Paint();
paint.setShader(bitmapShader);
5. SweepGradient(扫描渐变):
- SweepGradient 可以创建一个围绕中心旋转的颜色渐变。
// 创建SweepGradient
float centerX = 100f;
float centerY = 100f;
int startColor = Color.RED;
int endColor = Color.BLUE;
Shader sweepGradient = new SweepGradient(
centerX, centerY, // 渐变中心坐标
startColor, endColor // 起始颜色和结束颜色
);
// 应用Shader到Paint
Paint paint = new Paint();
paint.setShader(sweepGradient);
这里介绍了关于Shader的基本概念和一些常见类型的使用方法。通过使用不同的Shader类型,你可以实现丰富的图像渲染效果。
转载请注明出处:http://www.zyzy.cn/article/detail/15226/Android