Android SweepGradient类介绍

Android 颜色处理(八) SweepGradient 扫描/梯度渲染

为什么什么叫扫描渲染呢?  相信大家都看过雷达扫描的效果,尤其是在安全软件中.



public SweepGradient(float cx, float cy, int[] colors, float[] positions)
Parameters:
cx渲染中心点x 坐标
cy渲染中心y 点坐标
colors围绕中心渲染的颜色数组,至少要有两种颜色值
positions相对位置的颜色数组,可为null,  若为null,可为null,颜色沿渐变线均匀分布


public SweepGradient(float cx, float cy, int color0, int color1)
Parameters:

cx渲染中心点x 坐标
cy渲染中心点y 坐标
color0起始渲染颜色
color1结束渲染颜色


关键是怎么理解这个中心点的意思,其实就是围绕哪个点开始渐变,下面以实例说明:

  

public class MainActivity extends Activity {
SweepGradientView mSweep;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSweep=new SweepGradientView(this, null);
setContentView(mSweep);
}
}


public class SweepGradientView extends View {

Paint mPaint = null;
// 梯度渲染
Shader mSweepGradient = null;

public SweepGradientView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

mSweepGradient = new SweepGradient(200, 300, new int[] { Color.CYAN,
Color.DKGRAY, Color.GRAY, Color.LTGRAY, Color.MAGENTA,
Color.GREEN, Color.TRANSPARENT, Color.BLUE }, null);
mPaint = new Paint();

mPaint.setShader(mSweepGradient);

canvas.drawCircle(240, 360, 200, mPaint);
}
}

我们看到这里的中心点给的是200、300,其实就是在屏幕上以X方向为200、Y方向为300的左边开始渐变,效果图如下:



如果以240, 360为中心点开始渐变,这个时候的效果如下:


 


切记理解这个中心点的意思,是围绕哪个点开始渐变



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值