Android view扩大点击区域

一、方式一

通过添加padding来扩大点击区域。

二、方式二

TouchDelegate让父视图能够将子视图的可轻触区域扩展到子视图的边界之外。当子视图必须较小,同时又应该具有较大的轻触区域时,此方法很有用。
TouchDelegate的使用方法很简单,考虑下图这种情形
Android view扩大点击区域_第1张图片
我们想扩大View2的点击区域至View1内部的Bounds区域,只需在View2完成绘制后获取到其扩展区域Bounds相对于View1的坐标,再为View1设置TouchDelegate即可。代码如下:

view1.post(new Runnable() {
    @Override
    public void run() {
        Rect bounds = new Rect();
        // 获取View2区域在View1中的相对位置,这里因为View1是View2的直接父View,所以使用getHitRect()
        view2.getHitRect(bounds);
        // 计算扩展后的区域Bounds相对于View1的位置,left、top、right、bottom分别为View2在各个方向上的扩展范围
        bounds.left -= left;
        bounds.top -= top;
        bounds.right += right;
        bounds.bottom += bottom;
        // 创建TouchDelegate
        TouchDelegate touchDelegate = new TouchDelegate(bounds, view2);
        // 为View1设置TouchDelegate
        view1.setTouchDelegate(touchDelegate);
    }
}

你可能感兴趣的:(Android日常工作,android,java,安卓)