在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动画效果--渐变动画,包括Alpha渐变、scale渐变、translate渐变、rotate渐变。并有两种实现动画方式:Java Code实现和XML实现。
Android-导航栏特效-文字缩放-颜色渐变 比今日头条,网易效果效果还要多
渐变颜色渐变文字渐变图像GradualshowcolorAndResourse
Android游戏开发一 长按Button原理 Android游戏开发二 View和SurfaceView ...Android游戏开发17 图像渐变特效 Android游戏开发18 SoundPool类 Android游戏开发19 分辨率大全 Android游戏开发20 双按事件捕获
Android123做的一个关于Android游戏开发的教程 1.Android游戏开发之旅一 长按Button原理 2.Android游戏开发之旅二 View和SurfaceView 3.Android游戏开发之旅三 View类详解 ...17.Android游戏开发之旅17 图像渐变特效
AvatarView 一个圆形图像视图,支持进度动画、带边框和渐变颜色的高亮状态
LinearGradient实现TextView字体渐变的效果
android-image-slide-panel 图像为卡片,可以向左或向右滑动并逐渐消失 为了突出我的英语技能,我决定这次用英语创建这个README.md文件。 这里应该引起一些掌声。 ####原始意图存在一个中文应用程序“初页”,该...
android实现TextView文字部分渐变色;LinearGradientFontSpan SpannableString
本项目旨在开发一个集合了多种页面特效的Android应用,为用户提供丰富多彩的界面交互体验。通过集成多种动画效果和过渡方式,该应用能够展示Android平台在界面设计上的强大功能和创新性。 在功能实现上,项目首先...
CircleProgressBar 一个圆形渐变Android进度条
matlab开发-添加背景渐变图。添加背景渐变以绘制轴,使它们看起来有点花哨。
Android 画笔paint渐变色 自定义View渐变色实现方式
android自定义view之最简单的仿QQ音乐歌词颜色渐变,实现起来很简单,原理请看博客http://blog.csdn.net/jflex/article/details/46550849
matlab开发-颜色渐变生成自定义多行颜色映射。颜色渐变允许您生成从颜色A到颜色B的线性颜色渐变。
android特效GaussPager高斯模糊渐变的滑动效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android自定义View中,使用RadialGradient来实现椭圆形的放射性渐变效果。 Android中实现椭圆形的绘制很简单,只需要调用canvas.drawOval()就可以了,但是椭圆形的中心发散渐变效果Android自带的API里面却是没有的,...
Android——实现光点模糊渐变的自旋转圆环特效,实现水滴波纹特效
最近做了一个功能,里面涉及到了渐变圆形的需求。就是一个颜色可以渐变的圆环,最后实现的效果如下图: 左图是带渐变效果,右图是不带渐变效果。原理还是绘图,Canvas可以绘制的对象有:弧线(arcs)、填充颜色...
js 特效 html 特效 彩色渐变带 js 特效 html 特效 彩色渐变带