Skip to content

Commit b262f0d

Browse files
committed
Update
1 parent 4cbf83c commit b262f0d

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

CustomView/Advance/[17]touch-matrix-region.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
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

@@ -30,7 +23,10 @@
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 以下,不要使用硬件加速的特性,或者进行兼容处理
554550
4. 如果 自定义View 出现与绘图相关的异常,请务必检查一下硬件加速。
555551
5. 如果想关掉硬件加速看这里: [Android如何关闭硬件加速](https://github.com/GcsSloop/AndroidNote/issues/7)
556552

553+
554+
557555
## 总结
558556

559557
本文虽然代码比较多,但核心概念非常简单,主要涉及以下两点:

0 commit comments

Comments
 (0)