LinearGradient线性渲染

2023-11-01

[java]  view plain copy
  1. import android.content.Context;  
  2. import android.graphics.Canvas;  
  3. import android.graphics.Color;  
  4. import android.graphics.LinearGradient;  
  5. import android.graphics.Paint;  
  6. import android.graphics.Shader;  
  7. import android.view.View;  
  8.   
  9. /** 
  10.  * @version 2012-8-14 上午10:45:28 
  11.  **/  
  12. public class myGameView extends View implements Runnable {  
  13.     int bitwidth = 0;  
  14.     int bitheight = 0;  
  15.     Paint mPaint = null;  
  16.     // 线性渐变渲染  
  17.     Shader mLinearGradient1 = null;  
  18.     // 线性渐变渲染  
  19.     Shader mLinearGradient2 = null;  
  20.     // 线性渐变渲染  
  21.     Shader mLinearGradient3 = null;  
  22.   
  23.     public myGameView(Context context) {  
  24.         super(context);  
  25.         // 创建LinearGradient并设置渐变颜色数组  
  26.         // 第一个,第二个参数表示渐变起点 可以设置起点终点在对角等任意位置  
  27.         // 第三个,第四个参数表示渐变终点  
  28.         // 第五个参数表示渐变颜色  
  29.         // 第六个参数可以为空,表示坐标,值为0-1 new float[] {0.25f, 0.5f, 0.75f, 1 }  
  30.         // 如果这是空的,颜色均匀分布,沿梯度线。  
  31.         // 第七个表示平铺方式  
  32.         // CLAMP重复最后一个颜色至最后  
  33.         // MIRROR重复着色的图像水平或垂直方向已镜像方式填充会有翻转效果  
  34.         // REPEAT重复着色的图像水平或垂直方向  
  35.         mLinearGradient1 = new LinearGradient(000100new int[] {  
  36.                 Color.RED, Color.GREEN, Color.BLUE, Color.WHITE }, null,  
  37.                 Shader.TileMode.CLAMP);  
  38.         mLinearGradient2 = new LinearGradient(000100new int[] {  
  39.                 Color.RED, Color.GREEN, Color.BLUE, Color.WHITE }, null,  
  40.                 Shader.TileMode.MIRROR);  
  41.         mLinearGradient3 = new LinearGradient(000100new int[] {  
  42.                 Color.RED, Color.GREEN, Color.BLUE, Color.WHITE }, null,  
  43.                 Shader.TileMode.REPEAT);  
  44.         mPaint = new Paint();  
  45.         new Thread(this).start();  
  46.     }  
  47.   
  48.     @Override  
  49.     protected void onDraw(Canvas canvas) {  
  50.         // LinearGradient的高度只有100而绘制的矩形有200所以才会有重复  
  51.         // 如果高度两者相同clamp重复是看不出效果的  
  52.         Paint paint = new Paint();  
  53.         paint.setTextSize(20);  
  54.         paint.setColor(Color.WHITE);  
  55.         // 绘制渐变的矩形  
  56.         mPaint.setShader(mLinearGradient1);  
  57.         canvas.drawRect(00200200, mPaint);  
  58.         canvas.drawText("CLAMP"0200 + 20, paint);  
  59.         // 绘制渐变的矩形  
  60.         mPaint.setShader(mLinearGradient2);  
  61.         canvas.drawRect(0250200450, mPaint);  
  62.         canvas.drawText("MIRROR"0450 + 20, paint);  
  63.         // 绘制渐变的矩形  
  64.         mPaint.setShader(mLinearGradient3);  
  65.         canvas.drawRect(0500200700, mPaint);  
  66.         canvas.drawText("REPEAT"0700 + 20, paint);  
  67.     }  
  68.   
  69.     @Override  
  70.     public void run() {  
  71.         while(!Thread.currentThread().isInterrupted()) {  
  72.             try {  
  73.                 Thread.sleep(100);  
  74.             }  
  75.             catch(Exception e) {  
  76.                 Thread.currentThread().interrupt();  
  77.             }  
  78.             postInvalidate();  
  79.         }  
  80.     }  
  81. }  
效果图




FRom http://blog.csdn.net/q445697127/article/details/7865504

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LinearGradient线性渲染 的相关文章

  • Go读取Xml标签数据

    目录 目录结构 xzm xml文件 readMysqlXml go代码 效果展示 作者留言 目录结构 xzm xml文件
  • Netty一,Rest风格,Netty的Helloword、

    Rest风格 为一种编码风格 默认约定 NettyHelloword 客户端 和服务器端 服务器端 package com netty c1 import io netty bootstrap ServerBootstrap import
  • 互融云农产品追溯系统:区块链存证技术实现双向可追溯

    农产品溯源是食品溯源中最复杂和最艰难的部分 是指通过采集农产品在生产 加工 仓储 物流等环节的相关数据 建立一个涵盖从初级到深加工各个阶段的可视化农产品信息库 向消费者充分展示产品安全与品质相关信息 实现从农田到餐桌的双向可追溯 农产品需求
  • Unity解析OSM数据,并生成简单模型

    文章目录 一 介绍XML数据格式 二 Unity解析XML数据格式的方法 1 C 自带的方法 2 Unity读取TextAsset方法 三 OSM数据介绍 四 Unity解析OSM数据 1 定义node和way的数据结构 2 获取XML文件
  • 辐射定标、大气校正

    辐射校正 指在光学遥感数据获取过程中 产生的一切与辐射有关的误差的校正 包括辐射定标和大气校正 三者关系如图 大气校正的准备过程为辐射定标 表观反射率 表观反射率就是指大气层顶的反射率 辐射定标的结果之一 大气层顶表观反射率 简称表观反射率
  • vue键盘按下事件_vue修饰符可能是东半球最详细的文档(滑稽)

    前端媛猿 读完需要 8 分钟 速读仅需 5 分钟 作者 李大雷 https segmentfault com a 1190000016786254 为了方便大家写代码 vue js给大家提供了很多方便的修饰符 比如我们经常用到的取消冒泡 阻
  • Java知识点梳理:Collection框架

    java集合类是开发中经常用到的 比如ArrayList HashMap HashSet等 下面来系统的说一下 Collection类图 Collections与Collection Collection 是一个集合接口 提供了对集合对象进
  • 文本异常检测

    原文 简单的word2vec进行平均在句子语义相似性的计算上效果一般般 很好理解 我爱你和你爱我的句子含义不一样 但是直接进行平均最终的结果是一样的 这类策略忽略了item的顺序信息 不过对于无序的items来说问题不大吧 sif并没有解决
  • 怎么查看jvm垃圾回收的算法看是那个

    在控制台输入命令 java XX PrintCommandLineFlags version 显示结果 XX UseParallelGC 新生代使用ParallerGC 老年代使用Serial Old 垃圾回收器列表 并行 垃圾收集的多线程
  • Drain基于固定深度解析树

    论文地址 http jmzhu logpai com pub pjhe icws2017 pdf Drain可以以流方式实时解析日志 为了加快解析过程 Drain使用了固定深度的解析树 请参见上图 根节点为树的顶层 底层为叶子节点 其他层为
  • BART模型简单介绍

    目录 一 概要 二 深入扩展 2 1 预训练任务 2 2 模型精调 一 概要 BART Bidirectional and Auto Regressive Transformers 模型使用标准的基于Transformer的序列到序列结构

随机推荐

  • Matplotlib入门:等高线图contour

    import matplotlib pyplot as plt import numpy as np def f x y return 1 x 2 x 5 y 3 np exp x 2 y 2 n 256 x np linspace 3 3
  • 2021-05-26

    win10 任务栏图标在文件夹的位置 C Users Administrator AppData Roaming Microsoft Internet Explorer Quick Launch User Pinned TaskBar ww
  • C语言拔高知识——指针的进阶(万字大文超详细)

    在之前的文章中 我已经讲解过了初阶指针的内容 今天就来讲一讲指针的进阶 上篇指针地址 保姆式指针讲解 超详细 适合初学者 指针详解 陈大大陈的博客 CSDN博客 目录 1 字符指针 2 指针数组 3 数组指针 3 1 数组指针的定义 3 2
  • centos7hadoop安装配置

    centos7 Hadoop安装配置 一 前置 1 新建虚拟机 先关闭防火墙 2 配置虚拟机网络 3 安装vim工具 4 设置免密登陆 5 安装同步时间工具 6 修改本计算机名字 二 安装配置JDK和Hadoop 1 通过xftp或者类似软
  • 三极管实现的锁存电路

    电路现象描述 电路上电后状态是万用表输出电压位1 874uV 电路复位输出低电平 当按键S2按下后 万用表测的电压为4 959V 高电平 按键S2松开后 万用表仍然保持输出4 918V 高电平 既实现了高电平的锁存 当按键S1按下后电路万用
  • 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。分子分母要求互质。

    转载 蓝桥杯真题 18省Ca1 分数 1 1 1 2 1 4 1 8 1 16 每项是前一项的一半 如果一共有20项 求这个和是多少 结果用分数表示出来 类似 3 2 伏城无嗔的博客 CSDN博客
  • 几个常用算法的适应场景及其优缺点(非常好)

    本文主要回顾下几个常用算法的适应场景及其优缺点 机器学习算法太多了 分类 回归 聚类 推荐 图像识别领域等等 要想找到一个合适算法真的不容易 所以在实际应用中 我们一般都是采用启发式学习方式来实验 通常最开始我们都会选择大家普遍认同的算法
  • 关于appcompat_v7的问题

    今天处理了一下之前遗留下来的一个问题 问题现象 1 路径 res values 下的styles xml文件显示下述错误 error Error retrieving parent for item No resource found th
  • spark 访问阿里云OSS

    pom xml
  • FreeNAS-11.2-U7 smb共享和FTP设置

    环境 最少2块硬盘 1块系统盘 1块存储盘 IP 10 0 1 101 24 下载 https download freenas org 11 2 STABLE U7 x64 FreeNAS 11 2 U7 iso 配置SMB共享 第一步
  • 月报总结|Moonbeam 8月份大事一览

    夏日已经趋近尾声 脚下的这片土地正迎来凉爽的秋天 Moonbeam在最炎热的8月中 依然朝着其愿景不断向前迈进 Moonbeam生态也迎来了许多好消息 先前启动的第二批生态Grant计划也完成了最后的链上投票 3个项目成功通过投票 将获得G
  • java 稀疏数组(结合IO流)

    package com test01 import java io 稀疏数组的应用 public class Run private static String path D data dat public static void main
  • PySpark与DataFrame简介

    PySpark与DataFrame简介 1 PySpark与DataFrame简介 1 1 Spark简介 1 2 Spark DataFrame生成 1 基于RDD使用toDF 2 读取本地文件 3 读取HIVE表 4 pandas Da
  • 线性布局中的layout_weight属性

    作者 华清远见讲师 layout weight属性是线性布局的特有属性 当需要去按比例分配某一行或某一列上的控件时 通常会想到使用权重这个属性去解决 一般在使用该属性时 要把控件的layout width或layout height设置成0
  • VMware创建虚拟机时出现 network bot from intel e1000

    准备在vmware 上 创建虚拟机 点击启动时 却出现 network bot from intel e1000 operating system not found 首先查看一下是否安装使用了iso镜像 查询步骤如图 选中使用即可 如果还
  • selenium测试框架快速搭建(ui自动化测试)

    一 介绍 selenium目前主流的web自动化测试框架 支持多种编程语言Java pythan go js等 selenium 提供一系列的api 供我们使用 因此在web测试时我们要点页面中的某一个按钮 那么我们只需要获取页面 然后根据
  • cmake:aux_source_directory

    理论 aux source directory 查找在某个路径下的所有源文件 aux source directory lt dir gt lt variable gt 搜集所有在指定路径 lt dir gt 下的源文件的文件名 将输出结果
  • 禅道的测试模块(编写用例)

    建用例 用测试人员1的账号登录
  • PCI配置空间访问机制 及 地址域转换过程

    访问配置空间的总线事务通过ID进行寻址 ID号由总线号 Bus 设备号 Device 功能号 Function 组成 总线号 HOST主桥遍历PCI总线时确定 PCI总线可以通过PCI桥来扩展 并形成PCI总线树 在PCI总线树上 有几片P
  • LinearGradient线性渲染

    java view plain copy import android content Context import android graphics Canvas import android graphics Color import