我的网格视图中充满了如下所示的按钮:
现在如果我点击按钮上的任何地方,它将被按下。但是我希望按钮只能在浅灰色区域中点击,而不是在顶部和左侧的深灰色或白色区域。我尝试使用setPadding(int,int,int,int)
和setPaddingRelative(int,int,int,int)
,但它们都没有任何效果。我该如何解决这个问题?
编辑:按钮为50x50,已从按钮类
扩展答案 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。