扩大View的点击范围本人知道的有两种方法,在不影响界面效果的前提下:
1、在View的外面添加一个透明容器
2、就是本文要说的,代码如下 :
public void addToParentArea(final View view) {
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
final float density = metric.density;
final View parent = (View) view.getParent();
parent.post(new Runnable() {
public void run() {
// View的点击范围向四周扩大30个单位
final Rect r = new Rect();
view.getHitRect(r);
r.right += 30 * density;
r.left += 30 * density;
r.bottom += 30 * density;
r.top += 30 * density;
parent.setTouchDelegate(new TouchDelegate(r, view));
}
});
}