LinearGradient线性渲染
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import android.view.View; /**
* @version 2012-8-14 上午10:45:28
**/
public class myGameView extends View implements Runnable {
int bitwidth = 0;
int bitheight = 0;
Paint mPaint = null;
// 线性渐变渲染
Shader mLinearGradient1 = null;
// 线性渐变渲染
Shader mLinearGradient2 = null;
// 线性渐变渲染
Shader mLinearGradient3 = null; public myGameView(Context context) {
super(context);
// 创建LinearGradient并设置渐变颜色数组
// 第一个,第二个參数表示渐变起点 能够设置起点终点在对角等任何位置
// 第三个,第四个參数表示渐变终点
// 第五个參数表示渐变颜色
// 第六个參数能够为空,表示坐标,值为0-1 new float[] {0.25f, 0.5f, 0.75f, 1 }
// 假设这是空的,颜色均匀分布,沿梯度线。
// 第七个表示平铺方式
// CLAMP反复最后一个颜色至最后
// MIRROR反复着色的图像水平或垂直方向已镜像方式填充会有翻转效果
// REPEAT反复着色的图像水平或垂直方向
mLinearGradient1 = new LinearGradient(0, 0, 0, 100, new int[] {
Color.RED, Color.GREEN, Color.BLUE, Color.WHITE }, null,
Shader.TileMode.CLAMP);
mLinearGradient2 = new LinearGradient(0, 0, 0, 100, new int[] {
Color.RED, Color.GREEN, Color.BLUE, Color.WHITE }, null,
Shader.TileMode.MIRROR);
mLinearGradient3 = new LinearGradient(0, 0, 0, 100, new int[] {
Color.RED, Color.GREEN, Color.BLUE, Color.WHITE }, null,
Shader.TileMode.REPEAT);
mPaint = new Paint();
new Thread(this).start();
} @Override
protected void onDraw(Canvas canvas) {
// LinearGradient的高度仅仅有100而绘制的矩形有200所以才会有反复
// 假设高度两者同样clamp反复是看不出效果的
Paint paint = new Paint();
paint.setTextSize(20);
paint.setColor(Color.WHITE);
// 绘制渐变的矩形
mPaint.setShader(mLinearGradient1);
canvas.drawRect(0, 0, 200, 200, mPaint);
canvas.drawText("CLAMP", 0, 200 + 20, paint);
// 绘制渐变的矩形
mPaint.setShader(mLinearGradient2);
canvas.drawRect(0, 250, 200, 450, mPaint);
canvas.drawText("MIRROR", 0, 450 + 20, paint);
// 绘制渐变的矩形
mPaint.setShader(mLinearGradient3);
canvas.drawRect(0, 500, 200, 700, mPaint);
canvas.drawText("REPEAT", 0, 700 + 20, paint);
} @Override
public void run() {
while(!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
}
catch(Exception e) {
Thread.currentThread().interrupt();
}
postInvalidate();
}
}
}
效果图

LinearGradient线性渲染的更多相关文章
- Android 颜色渲染(五) LinearGradient线性渲染
版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色处理(五) LinearGradient线性渲染 相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌 ...
- Expo大作战(三十四)--expo sdk api之LinearGradient(线性渐变),KeepAwake(保持屏幕不休眠),IntentLauncherAndroid,Gyroscope,
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- CSS3 linear-gradient线性渐变实现虚线等简单实用图形
一.作为图片存在的CSS3 gradient渐变 我觉得CSS3 Backgrounds比较厉害的一个地方就是支持多背景,也就是背景图片个数可以无限累加,正好CSS3的gradient渐变性质是bac ...
- CSS3背景渐变属性 linear-gradient(线性渐变)和radial-gradient(径向渐变)
CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变). 为了更好的应用CSS3 Gradient,我们需要先了解一下目前的几种现代浏览器 ...
- linear-gradient线性渐变
作者:zccst CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradient(径向渐变). 1,在mozila background: -moz-l ...
- CSS3———linear-gradient() 线性渐变
线性渐变linear-gradient() 遇到了这样的css样式 body { height: 100%; background-color: #ffffff; background-image: ...
- 关于 android的 渲染器 Shader
因为公司在 自定义的画图上面比较苛刻(各种要求= =),最后又是改来改去的.反正是 Shader起到很大作用,特此记录一下下.在achartengine的基础上没有能满足他们= = androd 提供 ...
- Android 颜色渲染(三) Shader颜色渲染
版权声明:本文为博主原创文章,未经博主允许不得转载. 相信看过在上一篇中提到的三篇文章后,大家已经对颜色处理方面有更深的体会. 之前讲到颜色渐变的效果, 具体怎么做呢,这就需要应用颜色渲染. 首先要介 ...
- 渲染器 Shader BitmapShader
渲染模式: tileX tileY:The tiling mode for x/y to draw the bitmap in. 在位图上 X/Y 方向 瓦工/花砖/瓷砖 模式 CLAMP :如 ...
随机推荐
- 计算机图形学学习方法和相关书籍,做游戏,GIS,虚拟现实,三维引擎的都能够看看.
本书參照<<图形学扫盲>> 整理的,原文内容引子: http://www.cppblog.com/lai3d/archive/2008/12/30/70796.html 前言: ...
- JavaScript获取某年某月的最后一天
JavaScript获取某年某月的最后一天 1.实现源代码 <!DOCTYPE html> <!-- To change this license header, choose Li ...
- nginx+tomcat的集群和session复制
前端服务器采用nginx,后端应用服务器采用tomcat.nginx负责负载均衡,session复制在tomcat上处理. 1.nginx安装(略) 2.nginx配置负载均衡 http { incl ...
- respondsToSelector的相关使用
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例 -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例 -( ...
- 在现代渲染API下,封装跨平台渲染框架的尝试 - 资源管理
小生资历浅薄,不讨论该主题的重要性与未来的意义,只是个人兴趣爱好平日对这个问题思考了很多,总觉得要写点东西记录下来.框架还没有定型,只是记录自己设计的过程. 系统要跨平台,首先得将平台相关的实现与平台 ...
- (原)caffe在ubuntu中设置GPU的ID号及使用多个GPU
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5884892.html 参考网址: http://caffe.berkeleyvision.org/tu ...
- SQL语句 打印等腰三角形,菱形
) BEGIN 5 SET @S='' 8 BEGIN -@I) 10 BEGIN SET @S=@S+' ' END ELSE 14 BEGIN SET @S=@S+'**' 16 END END ...
- CentOS 安装redis2.8.13 提醒"libc.so.6: version `GLIBC_2.14' not found"系统的glibc版本太低
以下在系统CentOS 6.3 x86_64上操作 1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的gli ...
- 数塔(dp)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- hdu just a hook(线段树,区间修改)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...