Apidemo 学习 Sweep
2013-12-20 21:08
295 查看
在例Android ApiDemos示例解析(77):Graphics->RoundRects 曾经涉及到SweepGradient
,和RadialGradient 渐变方向不同是: SweepGradient 颜色渐变方向非环形,而是以某点为圆心呈扇形扫过。
SweepGradient的构造函数:
public SweepGradient(float cx, float cy, int[] colors, float[] positions)
public SweepGradient(float cx, float cy, int color0, int color1)
其中cx,cy 指定圆心, color1,color0 或 colors 指定渐变的颜色 ,对于使用多于两种颜色时,还可以通过positions 指定每种颜色的相对位置,positions 设为NULL时表示颜色均匀分布。
LineerGradient, RadialGradient, SweepGradient 等类的基类为Shader (类似于GDI中的Brush类) ,Shader 定义了一个与之对应的Local Matrix ,可让Shader 做坐标变换。本例使用Shader的LocalMatrix 旋转不同的角度,形成了动画效果:
[java] view
plaincopyprint?
float x = 160;
float y = 100;
mShader = new SweepGradient(x, y, new int[] { Color.GREEN,
Color.RED,
Color.BLUE,
Color.GREEN }, null);
mPaint.setShader(mShader);
...
protected void onDraw(Canvas canvas) {
...
mMatrix.setRotate(mRotate, x, y); //围绕 x y 旋转 mrotate度
mShader.setLocalMatrix(mMatrix);
mRotate += 3;
if (mRotate >= 360) {
mRotate = 0;
}
invalidate();
...
}
本例还可以按”D” ,”T”键来显示Paint 使用Dither (Dither定义可参见Android ApiDemos示例解析(59):Graphics->ColorFilters )
以及不同的“扫过速度”时的显示效果:
,和RadialGradient 渐变方向不同是: SweepGradient 颜色渐变方向非环形,而是以某点为圆心呈扇形扫过。
SweepGradient的构造函数:
public SweepGradient(float cx, float cy, int[] colors, float[] positions)
public SweepGradient(float cx, float cy, int color0, int color1)
其中cx,cy 指定圆心, color1,color0 或 colors 指定渐变的颜色 ,对于使用多于两种颜色时,还可以通过positions 指定每种颜色的相对位置,positions 设为NULL时表示颜色均匀分布。
LineerGradient, RadialGradient, SweepGradient 等类的基类为Shader (类似于GDI中的Brush类) ,Shader 定义了一个与之对应的Local Matrix ,可让Shader 做坐标变换。本例使用Shader的LocalMatrix 旋转不同的角度,形成了动画效果:
[java] view
plaincopyprint?
float x = 160;
float y = 100;
mShader = new SweepGradient(x, y, new int[] { Color.GREEN,
Color.RED,
Color.BLUE,
Color.GREEN }, null);
mPaint.setShader(mShader);
...
protected void onDraw(Canvas canvas) {
...
mMatrix.setRotate(mRotate, x, y); //围绕 x y 旋转 mrotate度
mShader.setLocalMatrix(mMatrix);
mRotate += 3;
if (mRotate >= 360) {
mRotate = 0;
}
invalidate();
...
}
本例还可以按”D” ,”T”键来显示Paint 使用Dither (Dither定义可参见Android ApiDemos示例解析(59):Graphics->ColorFilters )
以及不同的“扫过速度”时的显示效果:
相关文章推荐
- <form action="get.php" method="post" id="tform"> <input type="text" name="one"> <a href="jav
- uva 167 - The Sultan's Successors
- sql多关键词模糊查询
- 理工大学ACM平台题答案关于C语言 1010 A+B for Input-Output Practice (I)
- 脚本的精髓和本意
- hdu 4810 Wall Painting(二进制+组合数学)
- Android中搜索功能的添加
- Base operation about XMl file
- Java控制台运行
- WinFrom中如何获取文件图片路径
- List<>引起的nullpointerexception问题
- python basic
- DropdownList没办法选中值,总是回到第一个值
- mac os x 10.9 U盘通过 Boot Camp Assistant 安装windows7
- 整数取反,人人code--英雄会
- IFTTT Evernote 自动生成笔记
- CSL概述(翻译总结自TI官方文档)
- RBAC(Role-Based Access Control)基于角色的访问控制
- 查看内存命令
- 项目开发计划——机房收费系统