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的基础的例 ...
随机推荐
- 代码从Polyline读取到的坐标和属性对话框显示的不一样?
属性窗口中查询的第一个点坐标: 程序输出的各个点坐标: 差这么多? 原来是坐标系的问题,程序查询到的是世界坐标,属性窗口中是当前ucs坐标 Document doc = Application.Doc ...
- Java第08次实验提纲(多线程)
PTA与参考资料 题集:多线程 多线程实验参考文件 ThreadReading 实验-基础部分 基础题目MyThread类.PrintTask(讲解线程Thread与任务Runnable相分离的概念) ...
- LeetCode——4. Median of Two Sorted Arrays
一.题目链接:https://leetcode.com/problems/median-of-two-sorted-arrays 二.题目大意: 给定两个排序过的数组,求出两个数组的中位数,要求时间复 ...
- windows迁移linux问题集锦
1)‘_wcsicmp’在此作用域中尚未声明 #ifdef WIN32#define _tcsicmp _wcsicmp#else#define _tcsicmp wcsc ...
- idea+dubbo+zookeeper项目访问html页面的方法
将js,html文件放入consumer的resource的static和template文件中 1 consumer的pom需要引入模板的jar包 <dependency> ...
- 关于oracle的sqlplus显示不完全的修改方法
这样的显示看起来很痛苦 需要换行的时候没有进行换行,不需要换行的时候却进行了换行 参考的博客地址 https://blog.csdn.net/pan_tian/article/details/8059 ...
- fiddler 手机 https 抓包 以及一些fiddler无法解决的https问题http2、tcp、udp、websocket证书写死在app中无法抓包
原文: https://blog.csdn.net/wangjun5159/article/details/52202059 fiddler手机抓包原理 fiddler手机抓包的原理与抓pc上的web ...
- windows下GitHub的安装、配置以及项目的上传过程详细介绍
概要 本文主要介绍了在Win10系统中安装Github终端.如何配置安装好的Git终端以及如何利用Git终端将自己的项目上传到远程服务器中 操作必备 win10系统电脑一台.良好的互联网连接.GitH ...
- [UE4]增加机器人
一.新增蓝图继承自Shooter名为AIShooter.玩家角色也是继承自Shooter. 二.使用AIMoveTo追踪玩家.玩家控制的角色调用这个方法没反应. 三.关卡中添加组件NavMeshBou ...
- Java注解的基本概念和原理及其简单实用
一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...