HenCoder Android 自定义 View 1-8 硬件加速

硬件加速这个词每当被提及,很多人都会感兴趣。这个词给大部分人的概念大致有两个:快速、不稳定。对很多人来说,硬件加速似乎是一个只可远观而不可亵玩的高端科技:是,我听说它很牛逼,但我不敢「乱」用,因为我怕 hold 不住。 今天我试着就把硬件加速的外衣脱掉(并没有),聊一聊它的原理和应用: 硬件加速的本质和原理; 硬件加速在 Android 中的应用; 硬件加速在 Android 中的限制。 本篇是 「HenCoder Android 开发进阶」自定义 View 部分的最后一篇:硬件加速。 如果你没听说过 HenCoder,也可以看看这个: HenCoder:给高级 Android 工程师的进阶手册 概念 在正式开始之前需要说明一下,作为绘制部分的最后一期,本期内容只是为了内容的完整性做一个补充,因为之前好几期的内容里都有涉及硬件加速的技术点,而一些读者因为不了解硬件加速而产生了一些疑问。所以仅仅从难度上来讲,这期的内容并不难,并且本期的大部分内容你都可以从这两个页面中找到: Hardware…

阅读全文

HenCoder Android 自定义 View 1-7:属性动画 Property Animation(进阶篇)

这期是 HenCoder 自定义绘制的第 1-7 期:属性动画(进阶篇) 属性动画的上手篇在这里: HenCoder Android 开发进阶:自定义 View 1-6 属性动画(上手篇) 如果你没听说过 HenCoder,可以先看看这个: HenCoder:给高级 Android 工程师的进阶手册 简介 上期的内容,对于大多数简单的属性动画场景已经够用了。这期的内容主要针对两个方面: 针对特殊类型的属性来做属性动画; 针对复杂的属性关系来做属性动画。 TypeEvaluator 关于 ObjectAnimator,上期讲到可以用 ofInt() 来做整数的属性动画和用 ofFloat() 来做小数的属性动画。这两种属性类型是属性动画最常用的两种,不过在实际的开发中,可以做属性动画的类型还是有其他的一些类型。当需要对其他类型来做属性动画的时候,就需要用到 TypeEvaluator 了。 关于 TypeEvaluator 是什么和怎么用,先看一下下面的视频吧: 如果你是手机打开的,可以点这里去…

阅读全文

HenCoder Android 自定义 View 1-6:属性动画 Property Animation(上手篇)

这期是 HenCoder 自定义绘制的第 1-6 期:属性动画 Property Animation(上手篇) 如果你没听说过 HenCoder,可以先看看这个: HenCoder:给高级 Android 工程师的进阶手册 简介 前几期发布后,经常在回复里看到有人问我什么时候讲动画。本来我是不打算讲动画的,因为动画其实不算是自定义 View 的内容。但后来考虑了一下,动画在自定义 View 的开发中也起着很重要的作用,有的时候你对动画的了解不够,就难以实现一些自定义 View 的效果。 于是决定:加两期,讲动画! 不过并不是所有的动画都讲,我要讲的是属性动画。 Android 里动画是有一些分类的:动画可以分为两类:Animation 和 Transition;其中 Animation 又可以再分为 View Animation 和 Property Animation…

阅读全文

HenCoder Android 开发进阶:自定义 View 1-5 绘制顺序

这期是 HenCoder 自定义绘制的第 1-5 期:绘制顺序 之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View 1-2 Paint 详解 HenCoder Android 开发进阶 自定义 View 1-3 文字的绘制 HenCoder Android 开发进阶 自定义 View 1-4 Canvas 对绘制的辅助 如果你没听说过 HenCoder,可以先看看这个: HenCoder:给高级 Android 工程师的进阶手册 简介 前面几期讲的是「术」,是「用哪些 API…

阅读全文

HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助 clipXXX() 和 Matrix

这期是 HenCoder 自定义绘制的第 1-4 期:Canvas 对绘制的辅助——范围裁切和几何变换。 之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View 1-2 Paint 详解 HenCoder Android 开发进阶 自定义 View 1-3 文字的绘制 如果你没听说过 HenCoder,可以先看看这个: HenCoder:给高级 Android 工程师的进阶手册 简介 一图胜千言,一视频胜千图,走你: 如果你是在手机上看的,可以点这里去 B 站看原视频。 1 范围裁切 范围裁切有两个方法: clipRect(…

阅读全文

HenCoder Android 开发进阶:自定义 View 1-3 drawText() 文字的绘制

这期是 HenCoder 自定义绘制的第三期:文字的绘制。 之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View 1-2 Paint 详解 如果你没听说过 HenCoder,可以先看看这个: HenCoder:给高级 Android 工程师的进阶手册 简介 上期的 Paint 详解里已经说过,文字的绘制所能控制的内容太多太细,必须拆成单独的一期专门来讲。今天这期,就是来把这些细节讲清楚的。 需要说明的有两点: 和上期一样,这期讲的是细节,其中有一部分内容并不是很常用,所以这期你不必要求自己把内容全部背会,而只要做到全部理解,知道都有什么东西,大概怎么用就好,到你真正需要用的时候再拐回来看就是; 除了常用和不常用的内容,本期还会讲到一些比较偏门的细节。这些偏门几乎永远不会用到,我讲这些偏门的目的也只是为了做到知识的全覆盖,帮你破开迷雾解开谜团,把那些「…

阅读全文

HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解

这期是 HenCoder 自定义绘制的第二期: Paint。如果你没看过第一期,可以先去看一下第一期: HenCoder Android 开发进阶:自定义 View 1-1 绘制基础 简介 上一期我已经简单说过, Canvas 的 drawXXX() 方法配合 Paint 的几个常用方法可以实现最常见的绘制需求;而如果你只会基本的绘制, Paint 的完全功能的掌握,能让你更进一步,做出一些更加细致、炫酷的效果。把 Paint 掌握之后,你几乎不再会遇到「iOS 组可以实现,但你却实现不了」的绘制效果。 由于依然是讲绘制的,所以这期就没有介绍视频了。绘制的内容一共需要讲大概 5~6 期才能讲完,也就是说你要看 5~6 期才能成为自定义绘制的高手。相对于上期的内容,这期的内容更为专项、深度更深。对于没有深入研究过 Paint…

阅读全文

HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础

从今天开始,HenCoder 就正式开讲知识技能了。按照我的计划,第一季是 UI,UI 一共分为三部分:绘制、布局和触摸反馈。本期是绘制部分的第一期。绘制大概会用 5~6 期的时间讲完,整个 UI 的绘制、布局和触摸反馈三部分大概会用十来期。更新频率大约为每周一更(不承诺哟)。 如果你不知道 HenCoder 是什么,可以先看这里: HenCoder:给高级 Android 工程师的进阶手册 自定义绘制概述 二话不说,我反手就是一个视频: 首先总结一下视频中的关键点: 自定义绘制的方式是重写绘制方法,其中最常用的是 onDraw() 绘制的关键是 Canvas 的使用 Canvas 的绘制类方法: drawXXX() (关键参数:Paint) Canvas 的辅助类方法:范围裁切和几何变换 可以使用不同的绘制方法来控制遮盖关系 概念已经在视频里全部讲出来了,知识点并不多,…

阅读全文

`