File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- # 特殊形状控件的事件处理方案
1+ # 特殊控件的事件处理方案
22
33本文带大家了解 Android 特殊形状控件的事件处理方式,主要是利用了 Region 和 Matrix 的一些方法,超级实用的事件处理方案,相信看完本篇之后,任何奇葩控件的事件处理都会变得十分简单。
44
5- 不得不说,Android 对事件体系封装的非常棒,即便对事件体系不太了解的人,只要简单的调用方法就能使用,而且具有防呆设计,能够保证事件流的完整性和统一性,最大可能性的避免了事件处理的混乱,着实令人佩服。
6-
7- 然而世界上并没有绝对完美的东西,** 当【事件处理】遇上【自定义View】,一场好戏就开演了,玩的好叫坐镇军前,指挥千军万马而分毫不乱,玩的不好就是抓耳挠腮,眼见敌人前后包抄而无可奈何。**
8-
9- > #### 注意:
10- >
11- > 本文中所有的 自定义View 均继承自 CustomView ,这是一个自定义的超类,目的是简化 自定义View 部分常用操作,你可以在 [ ViewSupport] ( https://github.com/GcsSloop/ViewSupport/wiki/CustomView ) 中找到它以及关于它的简介。
12-
13- ## ⚠️ 警告:测试本文章示例之前请关闭硬件加速。
5+ 不得不说,Android 对事件体系封装的非常棒,即便对事件体系不太了解的人,只要简单的调用方法就能使用,而且具有防呆设计,能够保证事件流的完整性和统一性,最大可能性的避免了事件处理的混乱,着实令人佩服。
6+ ** 然而世界上并没有绝对完美的东西,当"事件处理"遇上"自定义View",一场好戏就开演了。**
147
158## 特殊形状控件
169
3023
3124相信小伙伴们看过 [ 前面的文章] [ CustomViewIndex ] 之后,对各种图形的绘制已经不成问题了,所以我们直接处理重点问题。
3225
33-
26+ > #### 注意:
27+ >
28+ > 本文中所有的 自定义View 均继承自 CustomView ,这是一个自定义的超类,目的是简化 自定义View 部分常用操作,你可以在 [ ViewSupport] ( https://github.com/GcsSloop/ViewSupport/wiki/CustomView ) 中找到它以及关于它的简介。
29+ > ** ⚠️ 警告:测试本文章示例之前请关闭硬件加速。**
3430
3531## 特殊形状控的点击区域判断
3632
@@ -548,12 +544,14 @@ public class RemoteControlMenu extends CustomView {
548544
549545** 个人建议:**
550546
551- 1 . 如果应用不需要大量重绘,那么硬件加速开启和关闭都无所谓,推荐关闭 。
552- 2 . 如果应用要兼容到 3.0 以下,建议不要使用硬件加速的特性,或者进行兼容性处理 。
553- 3 . 如果应用存在大量的动画等需要快速重绘的场景,在开启硬件加速时注意测试 。
547+ 1 . APP全局关闭硬件加速 。
548+ 2 . 针对动画较多的 Activity 或者 View 单独开启硬件加速 。
549+ 3 . 如果应用要兼容到 3.0 以下,不要使用硬件加速的特性,或者进行兼容处理 。
5545504 . 如果 自定义View 出现与绘图相关的异常,请务必检查一下硬件加速。
5555515 . 如果想关掉硬件加速看这里: [ Android如何关闭硬件加速] ( https://github.com/GcsSloop/AndroidNote/issues/7 ) 。
556552
553+
554+
557555## 总结
558556
559557本文虽然代码比较多,但核心概念非常简单,主要涉及以下两点:
You can’t perform that action at this time.
0 commit comments