Android 颜色处理(八) SweepGradient 扫描/梯度渲染
为什么什么叫扫描渲染呢? 相信大家都看过雷达扫描的效果,尤其是在安全软件中.
Parameters:
cx渲染中心点x 坐标
cy渲染中心y 点坐标
colors围绕中心渲染的颜色数组,至少要有两种颜色值
positions相对位置的颜色数组,可为null, 若为null,可为null,颜色沿渐变线均匀分布
Parameters:
cx渲染中心点x 坐标
cy渲染中心点y 坐标
color0起始渲染颜色
color1结束渲染颜色
关键是怎么理解这个中心点的意思,其实就是围绕哪个点开始渐变,下面以实例说明:
public class MainActivity extends Activity {SweepGradientView mSweep;@Overrideprotected 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);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.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为中心点开始渐变,这个时候的效果如下:
切记理解这个中心点的意思,是围绕哪个点开始渐变
泪,一种痛苦的雨滴,不知从什么时候开始已在我的世界下个不停。