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();}@Overrideprotected 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);}@Overridepublic void run() {while(!Thread.currentThread().isInterrupted()) {try {Thread.sleep(100);}catch(Exception e) {Thread.currentThread().interrupt();}postInvalidate();}}
}
效果图
转载于:https://www.cnblogs.com/bhlsheji/p/4268017.html
LinearGradient线性渲染相关推荐
- Android 颜色渲染(五) LinearGradient线性渲染
版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色处理(五) LinearGradient线性渲染 相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌 ...
- Android 颜色渲染 LinearGradient线性渲染
转载地址 LinearGradient我们可以将之译为线型渐变.线型渲染等,译成什么不重要,重要的是它的显示效果是什么样子,今天我们就一起来看看. 先来看看LinearGradient的构造方法: [ ...
- 【Android UI】Paint Gradient 渐变渲染 ① ( LinearGradient 线性渐变渲染 | 设置渲染方向 | 设置渲染颜色 | 设置渲染模式 | MIRROR )
文章目录 一.LinearGradient 线性渐变渲染 1.设置 2 个颜色的渐变 3.设置多个颜色的渐变 二.LinearGradient 线性渐变渲染重要参数分析 1.正常渲染 2.设置多个渐变 ...
- Android开发 之 线性渲染 LinearGradient
线性渲染LinearGradient LinearGradient有两个构造函数 第一个: public LinearGradient(float x0, float y0, float x1, fl ...
- 安卓图形绘制- LinearGradient 线性梯度
LinearGradient 线性渐变(线性梯度),用来实现在线的直线渐变,这个线是可以是直线竖线或者斜线 构造方法 public LinearGradient(float x0, float y0, ...
- CSS3 linear-gradient线性渐变实现虚线等简单实用图形
一.作为图片存在的CSS3 gradient渐变 我觉得CSS3 Backgrounds比较厉害的一个地方就是支持多背景,也就是背景图片个数可以无限累加,正好CSS3的gradient渐变性质是 ba ...
- html语言加号点一下变成减号6,CSS3 linear-gradient线性渐变生成加号和减号的方法...
在商城项目中,购物车是一个很重要的功能.其中最常见的是购物车中对库存的"+-"操作,包括抢购后面有很多算法.但是作为前端来说,购物车的结算中的+-就是一个计算而已.传统的实现方式是 ...
- Unity之线性渲染器
最近再做一个光线类的小游戏,时间不太够写算法的,但是不能断对算法的研究,周六日补吧~ 今天说说写光线的时候遇到的一个问题,在使用LineRender组件的时候,一旦在顶点数组中多加一个点从而增加一条线 ...
- CSS 的 linear-gradient() 线性渐变函数(带例子)
一.CSS中的 linear-gradient() 函数: 1.定义与用法:(定义部分取自菜鸟教程) linear-gradient() 函数用于创建一个线性渐变的" 图像 ". ...
最新文章
- 在Mybatis3开发中与配置相关的7点体会
- 松下SW-9585-C全功能DVD刻录机 狂降100+享受专业刻录!
- Struts2第十一篇【简单UI标签、数据回显】
- resultset rs =pst.executequery();发生异常_07795.14.4HMaster无法成为Active异常分析
- 接口方法和映射器的statement id 是怎么绑定起来的?
- Moodle网站档案的结构
- linux7telnet测试通是提示如何,如何优雅的使用telnet测试端口连通性
- Chapter 1 First Sight——13
- 【100个 Unity小知识点】☀️ | Unity 可以在编辑器中读取Excel,打包成exe后就无法读取的问题
- SpringBoot -- 抱团学习社区系统项目实战
- 刮刮乐微信html5源码,微信小程序canvas实现刮刮乐效果
- Google Earth Engine 教程——栅格矢量数据转化和导出
- Linux文件、目录
- python实验猜数游戏
- 用C实现Lenet的总结
- js创建json数据并保存
- Java遍历包中所有类
- linux之文件管理
- 【Node.js+koa--后端管理系统】项目初始化搭建
- word整个表格首行缩进_教师计算机技术水平考核word题集(二)