您的位置:首页 > 移动开发 > Android开发

Android 渐变 LinearGradient RadialGradient SweepGradient

2017-12-14 10:16 691 查看

主要用于领域

LinearGradient线性渲染
RadialGradient环形渲染
水波纹效果,充电水波纹扩散效果、调色板
SweepGradient梯度渲染(扫描渲染)
微信等雷达扫描效果。手机卫士垃圾扫描


LinearGradient 线性渐变

构造方法

/**
* @param x0                   起始的 x 坐标
* @param y0                   起始的 y 坐标
* @param x1                   结束的 x 坐标
* @param y1                   结束的 y 坐标
* @param int[] colors         中间依次要出现的几个颜色
* @param float[] positions    可能是空的。相对位置[ 0…1 ]
*                             颜色数组中的每个对应颜色。如果这是空的,
*                             颜色沿梯度线均匀分布。
*  数组大小跟colors数组一样大,中间依次摆放的几个颜色分别放置在那个位置上(参考比例从左往右)
* @param tile         显示模式
*/
public LinearGradient(float x0, float y0, float x1, float y1, int colors[],float positions[], TileMode tile) {
...
}


使用例子



@Override
protected void onDraw(Canvas canvas) {
//线性渐变
int colors[] = {Color.RED,Color.GREEN,Color.BLUE};
float positions[] = {0.2f,0.5f,1f};
LinearGradient linearGradient = new LinearGradient(
0, 300,
300, 300,
colors,
positions,
Shader.TileMode.CLAMP);
mPaint.setShader(linearGradient);
canvas.drawRect(0,0,300,300,mPaint);
}


RadialGradient 环形渲染



//圆形渐变
RadialGradient radialGradient = new RadialGradient(150, 150, 150, Color.RED, Color.BLUE, Shader.TileMode.CLAMP);
mPaint.setShader(radialGradient);
canvas.drawCircle(150,150,150,mPaint);


梯度渲染



//梯度渲染
SweepGradient sweepGradient = new SweepGradient(150, 150, Color.RED, Color.BLUE);
mPaint.setShader(sweepGradient);
canvas.drawCircle(150,150,150,mPaint);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android gradient 渐变