Android自定义View学习笔记(一)
绘制基础
参考:HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础
Paint详解
参考:HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解
关于颜色的三层设置
直接设置颜色的 API 用来给图形和文字设置颜色; setColorFilter() 用来基于颜色进行过滤处理; setXfermode() 用来处理源图像和 View 已有内容的关系。
颜色渐变用Shader,用图像来填充用BitmapShader,颜色与图像的叠加用PorterDuff.Mode
ColorFilter,对颜色进行处理,移除颜色或者增加颜色,进行颜色合成,或者对颜色进行处理(使用矩阵)
Xfermode() 用来处理源图像和 View 已有内容的关系

色彩优化
抖动,双线性过滤,路径变化,阴影,模糊,获取实际的绘制路径,获取文字路径
绘制文字
参考HenCoder Android 开发进阶:自定义 View 1-3 drawText() 文字的绘制
drawText
注意参数坐标是文字的左下方位置
StaticLayout:文字换行
绘制文字时,可以设置大小,字体,伪粗体,删除线,下划线,斜度,横向放缩,字符间距,用 CSS 的 font-feature-settings 的方式来设置文字,对齐方式,设置绘制所使用的 Locale(地域)等。
测量文字
获取推荐行距,获取 Paint 的 FontMetrics(包括top, ascent, baseline, descent, bottom),获取文字显示范围,测量文字宽度,获取字符串中每个字符的宽度,获取设置宽度下的文字个数,以及光标相关的方法。
Canvas 对绘制的辅助 clipXXX() 和 Matrix
参考HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助 clipXXX() 和 Matrix
范围裁切clip
几何变换
- 使用 Canvas 来做常见的二维变换
- 使用 Matrix 来做常见和不常见的二维变换
- 使用 Camera 来做三维变换
Android自定义View学习笔记(一)的更多相关文章
- 简单说说Android自定义view学习推荐的方式
这几天比较受关注,挺开心的,嘿嘿. 这里给大家总结一下学习自定义view的一些技巧. 以后写自定义view可能不会写博客了,但是可以开源的我会把源码丢到github上我的地址:https://git ...
- Android自定义View学习(四)
硬件加速 参考:HenCoder Android 自定义 View 1-8 硬件加速 硬件加速能够让绘制变快,主要有三个原因: 本来由 CPU 自己来做的事,分摊给了 GPU 一部分,自然可以提高效率 ...
- Android自定义View学习(二)
绘制顺序 参考:HenCoder Android 开发进阶:自定义 View 1-5 绘制顺序 绘制过程 包括 背景 主体(onDraw()) 子 View(dispatchDraw()) 滑动边缘渐 ...
- 【转载】自定义View学习笔记之详解onMeasure
网上对自定义View总结的文章都很多,但是自己还是写一篇,好记性不如多敲字! 其实自定义View就是三大流程,onMeasure.onLayout.onDraw.看名字就知道,onMeasure是用来 ...
- Android自定义View学习(三)
属性动画(上) 参考:HenCoder 自定义绘制的第 1-6 期:属性动画 Property Animation(上手篇) Interpolator 其实就是速度设置器,设置动画运行的速度. 属性动 ...
- Android 自定义 View 圆形进度条总结
Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...
- Android之自定义View学习(一)
Android之自定义View学习(一) Canvas常用方法: 图片来源 /** * Created by SiberiaDante on 2017/6/3. */ public class Bas ...
- Android 自定义View合集
自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...
- Android自定义View (二) 进阶
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24300125 继续自定义View之旅,前面已经介绍过一个自定义View的基础的例 ...
随机推荐
- spring cloud-前端跨域问题的解决方案
当我们需要将spring boot以restful接口的方式对外提供服务的时候,如果此时架构是前后端分离的,那么就会涉及到跨域的问题,那怎么来解决跨域的问题了,下面就来探讨下这个问题. 解决方案一: ...
- Bitmap BitmapData
var sp:Sprite=new Sprite(); sp.graphics.beginFill(0xffccdd); sp.graphics.drawRect(0,0,100,100); sp.g ...
- django获取表单数据
django获取单表数据的三种方式 v1 = models.Business.objects.all() # v1是QuerySet的列表 ,内部元素都是对象 v2 = models.Business ...
- Hive的安装配置 & 基础指令
Hive 基础命令
- mysql监测工具
可视性是系统设计的最佳境界,MySQL 也不例外.一旦完成了 MySQL 环境的搭建.运行并调优,您千万不要认为已经万事大吉了. 数据库环境既会受到来自系统更改或流量负荷的影响,也会遇到例如流量高峰. ...
- 从知名外企到创业公司做CTO是一种怎样的体验?
这是我近期接受51CTO记者李玲玲采访的一篇文章,分享给大家. 作者:李玲玲来源:51cto.com|2016-12-30 15:47 http://cio.51cto.com/art/201612/ ...
- 廖雪峰Java6IO编程-1IO基础-1IO简介
1.IO简介 IO是指Input/Output,即输入和输出: Input指从外部读取数据到内存,例如从磁盘读取,从网络读取. * 为什么要把数据读到内存才能处理这些数据呢? * 因为代码是在内存中运 ...
- jQuery版本问题,及事件源
jQuery版本的分界线是2.0 2.0之前很多方法支持ie低版本,2.0之后就不支持了 工具:index() 指定元素的索引 (有参数) 不传参的情况下,父级元素下同级元素的排名,传参:指定元素的 ...
- Django的视图层简介
Django的视图层 视图函数 所谓视图函数,其实就是我们Django项目中各个应用中的views.py文件中定义的每个用来处理URL路由映射到这里的逻辑函数.一个视图函数简称视图,它是个简单的Pyt ...
- Jmeter(二十二)Jmeter-Question之“不同线程组之间传递变量”
Jmeter中增添原件是以线程组为‘基本单位’的,贴张图,显而易见: 测试计划节点下的内容 线程组节点下的内容 因此,变量只能在当前的线程组下进行传递.做个小Demo,立即试试: 测试结论:不同线程组 ...