版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 颜色处理(五) LinearGradient线性渲染

相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌词颜色渐变点亮效果,这种效果怎么做呢? 这就需要用到LinearGradient线性渲染,下面还是先看具体的使用:

LinearGradient有两个构造函数;

public LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions,Shader.TileMode tile)

参数:

float x0: 渐变起始点x坐标

float y0:渐变起始点y坐标

float x1:渐变结束点x坐标

float y1:渐变结束点y坐标

int[] colors:颜色 的int 数组

float[] positions: 相对位置的颜色数组,可为null,  若为null,可为null,颜色沿渐变线均匀分布

Shader.TileMode tile: 渲染器平铺模式

public LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1,Shader.TileMode tile)

float x0: 渐变起始点x坐标

float y0:渐变起始点y坐标

float x1:渐变结束点x坐标

float y1:渐变结束点y坐标

int color0: 起始渐变色

int color1: 结束渐变色

Shader.TileMode tile: 渲染器平铺模式

效果图:

然后看一下具体怎么实现这种效果;

MainActivity:

[java] view plaincopy
  1. package com.tony.shader;
  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. public class MainActivity extends Activity {
  5. private LinearGradientView linearGradientView;
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. linearGradientView = new LinearGradientView(this);
  10. setContentView(linearGradientView);
  11. }
  12. }

LinearGradientView;

[java] view plaincopy
  1. package com.tony.shader;
  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.Color;
  5. import android.graphics.LinearGradient;
  6. import android.graphics.Paint;
  7. import android.util.AttributeSet;
  8. import android.graphics.Shader;
  9. import android.view.View;
  10. public class LinearGradientView extends View {
  11. private LinearGradient linearGradient = null;
  12. private Paint paint = null;
  13. public LinearGradientView(Context context)
  14. {
  15. super(context);
  16. linearGradient = new LinearGradient(0, 0, 100, 100, new int[] {
  17. Color.YELLOW, Color.GREEN, Color.TRANSPARENT, Color.WHITE }, null,
  18. Shader.TileMode.REPEAT);
  19. paint = new Paint();
  20. }
  21. public LinearGradientView(Context context, AttributeSet attrs) {
  22. super(context, attrs);
  23. }
  24. @Override
  25. protected void onDraw(Canvas canvas) {
  26. // TODO Auto-generated method stub
  27. super.onDraw(canvas);
  28. //设置渲染器
  29. paint.setShader(linearGradient);
  30. //绘制圆环
  31. canvas.drawCircle(240, 360, 200, paint);
  32. }
  33. }

Android 颜色渲染(五) LinearGradient线性渲染相关推荐

  1. Android 颜色渲染 LinearGradient线性渲染

    转载地址 LinearGradient我们可以将之译为线型渐变.线型渲染等,译成什么不重要,重要的是它的显示效果是什么样子,今天我们就一起来看看. 先来看看LinearGradient的构造方法: [ ...

  2. LinearGradient线性渲染

    import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; impor ...

  3. 【Android UI】Paint Gradient 渐变渲染 ① ( LinearGradient 线性渐变渲染 | 设置渲染方向 | 设置渲染颜色 | 设置渲染模式 | MIRROR )

    文章目录 一.LinearGradient 线性渐变渲染 1.设置 2 个颜色的渐变 3.设置多个颜色的渐变 二.LinearGradient 线性渐变渲染重要参数分析 1.正常渲染 2.设置多个渐变 ...

  4. Android 颜色渲染(六) RadialGradient 环形渲染

    Android 颜色处理(六) RadialGradient 环形渲染 public RadialGradient(float x, float y, float radius, int[] colo ...

  5. Android开发 之 线性渲染 LinearGradient

    线性渲染LinearGradient LinearGradient有两个构造函数 第一个: public LinearGradient(float x0, float y0, float x1, fl ...

  6. Android 颜色渲染(二) 颜色区域划分原理与实现思路

    在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用 首先还是看一下最终的实现效果:    ...

  7. Android 颜色渲染(九) PorterDuff及Xfermode详解

    Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前,  ...

  8. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )

    文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...

  9. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...

最新文章

  1. Spring Boot 前后端配合及接口化测试学习记录[3]
  2. Mozilla新特性只支持https网站
  3. 图解分析一个dNet进销存软件
  4. android面试小结
  5. 学java_如何一步一步的学Java
  6. boost::pfr模块ops相关的测试程序
  7. tftp刷路由器 linux,TP-Link无线路由器HTTP/TFTP后门漏洞
  8. layui 父页面弹框中获取子页面的内容
  9. NumPy Essentials 带注释源码 二、NumPy 数组对象
  10. 生于俄罗斯的 Web 服务器王者 Nginx,现宣布俄罗斯禁止贡献
  11. eureka server配置_Spring Boot(十):注册中心Eureka-客户端视角
  12. 一文读懂声纹采集、声纹识别、声纹数据库系统等声纹识别技术在公安业务领域的应用场景
  13. Jmeter将每次测试的结果保存到文件中
  14. VuePress构建一个文档管理网站
  15. 二次型,标准型,规范型
  16. android b571 版本,HUAWEI Mate 7 EMUI 4.0.1 B571 版本发布说明及问题反馈
  17. 计算机基础文化的读书报告,计算机导论读书报告
  18. C语言应用宏定义解决三角形的面积问题
  19. 如何在极速PDF编辑器中调整PDF视图?
  20. 投影仪连接笔记本常见问题与解决方法

热门文章

  1. “治不了GitHub,还治不了你?”唱片行业追杀youtube-dl
  2. XXL-JOB v2.0.2,分布式任务调度平台 | 多项特性优化更新
  3. Java foreach与for循环性能对比
  4. x86CPU 实模式 保护模式 傻傻分不清楚? 基于Xv6-OS 分析CR0 寄存器
  5. 关于量子计算机 (3)
  6. 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
  7. beangle commons 4.0.0 release
  8. 如何使自己的程序只运行一次
  9. windows 7下同时安装visual studio 2012和2010
  10. print python excel分隔_合并/拆分 Excel?Python、VBA轻松自动化