如何减少Button的点击区域?

时间:2014-12-23 07:37:22

标签: java android android-button android-gridview

我的网格视图中充满了如下所示的按钮:

现在如果我点击按钮上的任何地方,它将被按下。但是我希望按钮只能在浅灰色区域中点击,而不是在顶部和左侧的深灰色或白色区域。我尝试使用setPadding(int,int,int,int)setPaddingRelative(int,int,int,int),但它们都没有任何效果。我该如何解决这个问题?

编辑:按钮为50x50,已从按钮类

扩展

2 个答案:

答案 0 :(得分:1)

使用Button类继承自定义Button视图,并使用自定义代码覆盖onDraw方法。

您可以覆盖触摸方法以检测何时按下按钮,并且在不必按下按钮时获取x和y坐标以移除情况。

答案 1 :(得分:1)

在自定义按钮中覆盖onTouchEvent:

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (isInGrayArea(event.getX(), event.getY())) {
       return super.onTouchEvent(event);
    }
    return false;
}

event.getX()和event.getY()是像素坐标,我想你需要将它们转换成dp。