Android笔记之利用TouchDelegate扩大View点击区域
来源:互联网 发布:东非解放军 知乎 编辑:程序博客网 时间:2024/03/29 09:25
有时候美工提供给我们的图标是很小的,但却要在如此小的图标上附加点击事件,如果不做处理,用户在使用的时候是很难点中的。当然,我们可以通过布局做调整处理,但是往往是布局变得更复杂。现在我们通过TouchDelegate来扩大View点击区域方式解决这个问题。
还不知道TouchDelegate的,可以先查下资料,大致说下它的作用:假设有两个View,分别是v1、v2,可以通过v1.setTouchDelegate(new TouchDelegate(bounds, v2))来委派触摸事件,其中bounds是一个Rect。执行该这个方法后,v1中bounds区域的触摸事件TouchEvent将会传递给v2。
现在我们来解决我们的问题,先构建一个通用方法用于扩大指定View的点击区域:
public static void setTouchDelegate(final View view, final int expandTouchWidth) { final View parentView = (View) view.getParent(); parentView.post(new Runnable() { @Override public void run() { final Rect rect = new Rect(); view.getHitRect(rect); // view构建完成后才能获取,所以放在post中执行 // 4个方向增加矩形区域 rect.top -= expandTouchWidth; rect.bottom += expandTouchWidth; rect.left -= expandTouchWidth; rect.right += expandTouchWidth; parentView.setTouchDelegate(new TouchDelegate(rect, view)); } }); }
使用的时候只需在onCreate中或其他合适的地方调用setTouchDelegate(v2, 100),v2是要扩大点击区域的view,100是v2四周要扩大的点击区域px值。
0 0
- Android笔记之利用TouchDelegate扩大View点击区域
- Android TouchDelegate 扩大点击区域
- 使用android.view.TouchDelegate扩大View的触摸点击区域
- 使用android.view.TouchDelegate扩大View的触摸点击区域
- 使用TouchDelegate扩大View的点击区域
- 使用TouchDelegate扩大View的点击区域
- 用 TouchDelegate 扩大子 View 的点击区域
- Android学习之 扩大控件点击触摸区域及TouchDelegate的介绍
- Android 扩大触摸的触发区域 TouchDelegate
- Android 扩大点击区域
- android之view的TouchDelegate
- android checkbox 扩大点击区域
- Android 扩大view点击范围
- Android 扩大view点击范围
- Android view扩大点击范围
- Android 扩大view点击范围
- 使用 TouchDelegate 扩大控件的点击范围
- CSS揭秘--笔记--扩大可点击区域
- 携程基于Storm的实时大数据平台实践
- Java开发的必备技术点
- 把数组排成最小的数
- MySQL运行状态show status详解
- 35. Search Insert Position
- Android笔记之利用TouchDelegate扩大View点击区域
- LeetCode—394. Decode String
- matlab 子系统重用,精简自动代码
- Swift基础之实现一个镂空图片的小Demo
- 射频电路LC等效的微带线
- UVALive 4015 树形dp
- 呐。java初学图谱
- 图解 VS2015 如何打包winform 安装程序
- # DAY_01_操作系统常识