首页 > 移动平台 > 详细

Android SweepGradient类介绍

时间:2015-03-24 21:22:17      阅读:471      评论:0      收藏:0      [点我收藏+]

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为中心点开始渐变,这个时候的效果如下:

技术分享

 


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



Android SweepGradient类介绍

原文:http://blog.csdn.net/luo446718254/article/details/44596609

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!