Android 中的颜色渐变有三种类型:
a. 线性渐变:linear
b. 镜像渐变 : radial
c. 圆锥角度渐变 : sweep
实现方式:
  1. xml布局中实现:
    在drawable包中,使用shape绘制.
    drawable/test.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"  android:shape="rectangle" >  <gradient  android:angle="270"  <-从左到右为0;然后逆时针旋转,90度为从下到上,270为从上到下。->android:centerColor="#77333333"  <-中间颜色->
<-centerx和centery的值取0-1;表示中间点的位置,中间点为0的,则渐变的中间色的 位置在最上面;中间点为0.5的,则渐变的中间色在屏幕中间;中间点为1 的,则中间点在屏幕下部。->android:centerX="0.5"  android:centerY="0.5"  android:endColor="#ff666666"  //结束颜色android:startColor="#ff666666"  //开始颜色android:type="linear" /> </shape>
  1. 代码实现:(通过 Paint 的 setShader() 方法来设置这个渐变)
  • 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)

使用实例如下:
LinearGradient lg=new LinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);
参数一为渐变起初点坐标x位置,参数二为y轴位置,参数三和四分辨对应渐变终点,最后参数为平铺方式,这里设置为镜像.
Gradient是基于Shader类,所以我们通过Paint的setShader方法来设置这个渐变,

Paint p=new Paint();
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绘制颜色渐变图形相关推荐

  1. TIT 计算机图形学 实验三 使用重心坐标算法绘制颜色渐变的正六面体

    TIT 计算机图形学 实验三 使用重心坐标算法绘制颜色渐变的正六面体 前言 参考视频计算机图形学全套算法讲解和C++编码实现(共23讲配套源码),计算机图形学案例视频讲解以及主页相关算法.孔老师是我的 ...

  2. Html5学习------canvas绘制径向渐变图形

    <!DOCTYPE HTML> <html><head><meta http-equiv="Content-Type" content=& ...

  3. Android环形颜色渐变进度条

    我的视频课程:<FFmpeg打造Android万能音频播放器> 距离上次写博客又过了许久的了,懒起来还真是莫法,废话就不说多了,哈哈.今天要讲的就是一种常见的"环形颜色渐变的圆环 ...

  4. android绘制过程3d图形,Android开发之OpenGL绘制三维图形的流程

    从这篇文章开始,接下来会连载一系列的OpenGL相关博文,好好探讨如何在Android中进行OpenGL开发. OpenGL的全称是"Open Graphics Library", ...

  5. android的颜色渐变动画效果图,Android简单实现一个颜色渐变的ProgressBar

    今天看一个教程,看到一个颜色渐变的ProgressBar,觉得有点意思,所以记录一番. 下面这个是效果图 颜色渐变的ProgressBar 看到效果图可能会给人一种使用了高端技术的感觉,其实这个没有那 ...

  6. Matlab中绘制颜色渐变曲线

    大家在文章中是否看见过各类颜色渐变的曲线呢?今天小编就教大家在matlab中如何绘制这类颜色渐变的曲线. 一.scatter3函数 这个函数是大家最常想到的函数,具体用法就看其帮助文档,小编就给出一段 ...

  7. android自定义控件颜色渐变,Android编程实现自定义渐变颜色效果详解

    本文实例讲述了Android编程实现自定义渐变颜色效果.分享给大家供大家参考,具体如下: 你是否已经厌恶了纯色的背景呢?那好,Android提供给程序员自定义渐变颜色的接口,让我们的界面炫起来吧. x ...

  8. Android 实现颜色渐变的一个小 tip

    价值 | 思考 | 共鸣 简评:TL;DR: 如果要实现某个颜色到透明的渐变时,记得不要改动颜色的 RGB 值. Tip: 如果你想要创建从某个颜色到透明的渐变(gradient)背景,那就要小心使用 ...

  9. android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部

    1.创建  ScrollListener 接口监听滑动距离 public interface ScrollListener {void onScrollChanged(ScrollListenerVi ...

最新文章

  1. 路由器、三层交换机通过OSPF实现互访 (OSPF初学案例)
  2. js跟随鼠标移动的写法
  3. django时差8个小时问题
  4. 微软官方上线了Python教程,7个章节就把Python说通了!
  5. L2-020. 功夫传人
  6. 《SAS编程与数据挖掘商业案例》学习笔记之十
  7. Unity3D 4.x 使用Mecanim实现动画控制
  8. C语言 指针数组 - C语言零基础入门教程
  9. Exception in thread main java.lang.RuntimeException: org.apache.hadoop.security.AccessControlExcep
  10. iphone addressbook操作
  11. 统计自己洛谷AC题目爬虫
  12. 运用Unity实现AOP拦截器[结合异常记录实例]
  13. 【Java 8】教你用 Java 8中的 Optional 更优雅的判空
  14. Nyoj Fire Station
  15. 使用husky + lint-staged助力团队编码规范
  16. Chrome配置Proxy代理
  17. 【PA2013】【BZOJ3837】Filary
  18. YOLOv3目标检测算法——通俗易懂的解析
  19. 机器人的自述作文_机器人的自述作文
  20. php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介

热门文章

  1. BitComet Stable (build 1.66.4.13) 比特彗星-使用教程
  2. windows 网络远程连接samba,并修改windows默认连接samba端口445到指定端口(支持监听ipv6 及ipv4 IP地址)
  3. 计蒜客 最后一个单词的长度
  4. 【学习周报】深度学习笔记第六周
  5. 电路设计的3W原则、5W原则、3H原则、5H原则、20H原则、五五规则
  6. 哨兵 (sentinal) 机制的工作原理
  7. 有源晶振引脚接法是什么样的?
  8. ENVI:标准库中光谱(.sli)重采样
  9. 泰科MDO3034示波器波形FFT分析及数据导出
  10. 测试开发面试(八)——进程与线程、python数据结构、数据库