绘制基础

参考: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学习笔记(一)的更多相关文章

  1. 简单说说Android自定义view学习推荐的方式

    这几天比较受关注,挺开心的,嘿嘿. 这里给大家总结一下学习自定义view的一些技巧.  以后写自定义view可能不会写博客了,但是可以开源的我会把源码丢到github上我的地址:https://git ...

  2. Android自定义View学习(四)

    硬件加速 参考:HenCoder Android 自定义 View 1-8 硬件加速 硬件加速能够让绘制变快,主要有三个原因: 本来由 CPU 自己来做的事,分摊给了 GPU 一部分,自然可以提高效率 ...

  3. Android自定义View学习(二)

    绘制顺序 参考:HenCoder Android 开发进阶:自定义 View 1-5 绘制顺序 绘制过程 包括 背景 主体(onDraw()) 子 View(dispatchDraw()) 滑动边缘渐 ...

  4. 【转载】自定义View学习笔记之详解onMeasure

    网上对自定义View总结的文章都很多,但是自己还是写一篇,好记性不如多敲字! 其实自定义View就是三大流程,onMeasure.onLayout.onDraw.看名字就知道,onMeasure是用来 ...

  5. Android自定义View学习(三)

    属性动画(上) 参考:HenCoder 自定义绘制的第 1-6 期:属性动画 Property Animation(上手篇) Interpolator 其实就是速度设置器,设置动画运行的速度. 属性动 ...

  6. Android 自定义 View 圆形进度条总结

    Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...

  7. Android之自定义View学习(一)

    Android之自定义View学习(一) Canvas常用方法: 图片来源 /** * Created by SiberiaDante on 2017/6/3. */ public class Bas ...

  8. Android 自定义View合集

    自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...

  9. Android自定义View (二) 进阶

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24300125 继续自定义View之旅,前面已经介绍过一个自定义View的基础的例 ...

随机推荐

  1. Atom窗口切换和放大或者缩小

    Atom窗口切换和放大或者缩小   快捷键就是 F11

  2. 【ThreadLocal】使用ThreadLocal实现线程安全

    非线程安全 public class UnSafeThreadLocalDemo { private int count = 0; public static void main(String[] a ...

  3. 使用keytool 生成数字keystore

    生成本地证书 在密钥库中生成本地数字证书:需要提供身份.加密算法.有效期等信息: keytool指令如下,产生的本地证书后缀名为:*.keystore keytool -genkeypair -key ...

  4. Qt布局管理: 停靠窗口QDockWidget类(纯代码实现)

    转载:好儿郎~志在四方 详细描述: QDockWidget类提供了一个窗体部件,其可以停靠在QMainWindow,或其本身作为一个在桌面上的顶级窗口(也就是父窗体). QDockWidget类提供了 ...

  5. 高CPU排查方法分享

    1 软件性能较差,占用CPU较多,往往是由于某段代码逻辑算法不佳导致,那如何在数以千计的函数中找到问题函数呢?2 在使用!runaway命令比较不同时间各线程占用CPU时间,找到CPU时间增涨较多的线 ...

  6. 【原创】Docker实战 Dockerfile最佳实践&&容器之间通信

    官方最佳实践文档 https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#from Docker实战(三十) ...

  7. folly无锁队列,尝试添加新的函数

    1. folly是facebook开源的关于无锁队列的库,实现过程很精妙.folly向队列中添加节点过程,符合标准库中的队列的设计,而取出节点的过程,则会造成多个线程的分配不均.我曾经试着提供一次 取 ...

  8. HBase - Filter - 过滤器的介绍以及使用

    1 过滤器HBase 的基本 API,包括增.删.改.查等.增.删都是相对简单的操作,与传统的 RDBMS 相比,这里的查询操作略显苍白,只能根据特性的行键进行查询(Get)或者根据行键的范围来查询( ...

  9. OA-DB-LINUX安装说明

    HOST配置: HOST1:OADB-NODE1.LSTECH.COM HOST2:OADB-NODE2.LSTECH.COM 每台主机配置两个不同VLAN的IP地址 OSUSER:oracle 1. ...

  10. Anaconda的基本使用