Android游戏开发之旅(十七) 图像渐变特效
来源:互联网 发布:神州融大数据风控平台 编辑:程序博客网 时间:2024/06/05 11:00
在Android游戏开发中我们不免要涉及到一些图形特效处理,今天主要看下Android平台下实现渐变效果。在 android.graphics中我们可以找到有关Gradient字样的类,比如LinearGradient 线性渐变、RadialGradient径向渐变和 角度渐变SweepGradient 三种,他们的基类为android.graphics.Shader。为了显示出效果android123使用一个简单的例子来说明。
一、LinearGradient线性渐变
在android平台中提供了两种重载方式来实例化该类分别为,他们的不同之处为参数中第一种方法可以用颜色数组,和位置来实现更细腻的过渡效果,比如颜色采样int[] colors数组中存放20种颜色,则渐变将会逐一处理。而第二种方法参数仅为起初颜色color0和最终颜色color1。
- LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)
- LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)
使用实例如下
- Paint p=new Paint();
- LinearGradient lg=new LinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR); //参数一为渐变起初点坐标x位置,参数二为y轴位置,参数三和四分辨对应渐变终点,最后参数为平铺方式,这里设置为镜像
刚才Android开发网已经讲到Gradient是基于Shader类,所以我们通过Paint的setShader方法来设置这个渐变,代码如下:
- p.setShader(lg);
- canvas.drawCicle(0,0,200,p); //参数3为画圆的半径,类型为float型。
二、 RadialGradient镜像渐变
有了上面的基础,我们一起来了解下径向渐变。和上面参数唯一不同的是,径向渐变第三个参数是半径,其他的和线性渐变相同。
- RadialGradient(float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)
- RadialGradient(float x, float y, float radius, int color0, int color1, Shader.TileMode tile)
三、 SweepGradient角度渐变
对于一些3D立体效果的渐变可以尝试用角度渐变来完成一个圆锥形,相对来说比上面更简单,前两个参数为中心点,然后通过载入的颜色来平均的渐变渲染。
- SweepGradient(float cx, float cy, int[] colors, float[] positions) //对于最后一个参数SDK上的描述为May be NULL. The relative position of each corresponding color in the colors array, beginning with 0 and ending with 1.0. If the values are not monotonic, the drawing may produce unexpected results. If positions is NULL, then the colors are automatically spaced evenly.,所以Android123建议使用下面的重载方法,本方法一般为NULL即可。
- SweepGradient(float cx, float cy, int color0, int color1)
- Android游戏开发之旅(十七) 图像渐变特效
- Android游戏开发之旅(十七) 图像渐变特效
- Android游戏开发教程之十六:怎样实现图像渐变特效
- Android 图像渐变特效
- Android游戏开发之数据库SQLite 详细介绍(十七)
- Android游戏开发之数据库SQLite 详细介绍(十七) .
- Android游戏开发之数据库SQLite 详细介绍(十七)
- Android游戏开发之数据库SQLite 详细介绍(十七)
- Android游戏开发之数据库SQLite 详细介绍(十七)
- Android游戏开发之数据库SQLite 详细介绍(十七)
- Android游戏开发之数据库SQLite 详细介绍(十七)
- Android游戏开发之数据库SQLite 详细介绍(十七)
- 图像渐变特效
- Android游戏开发之切换游戏场景特效
- Android游戏开发之切换游戏场景特效的实现 (十九)
- (转)Android游戏开发之切换游戏场景特效的实现 (十九)
- Android游戏开发之横竖屏的切换(二十七)
- (转)Android游戏开发之数据库SQLite 详细介绍(十七)
- socket实现大型文件传输
- 微软企业库5.0 学习之路——UnityPIAB 通过配置实现AOP
- Mysql case when 使用count
- JavaScript的那些书
- MYSQL 多个DML语句同时提交
- Android游戏开发之旅(十七) 图像渐变特效
- BlueScreen
- oracle--pl/sql
- extJs_Ext.Array_API
- 细细审视的你代码:异步消息处理
- 正则匹配模式
- 高德纳(Knuth)谈计算机程序设计艺术(上)
- DWR之DWR的dwr.xml配置
- 高德纳(Knuth)谈计算机程序设计艺术(下)