如何以编程方式设置GestureOverlayView's
宽度和高度?
我尝试了以下代码。但是在设置宽度和高度时,我得到了空指针异常。
GestureOverlayView gestureOverlayView = new GestureOverlayView(this);
View inflate = getLayoutInflater().inflate(R.layout.main, null);
ImageView imageView = (ImageView) inflate.findViewById(R.id.imageView);
gestureOverlayView.addView(inflate);
gestureOverlayView.getLayoutParams().height = 50;
gestureOverlayView.getLayoutParams().width = 50;
setContentView(gestureOverlayView);
最佳答案
您需要先添加视图,然后才能读出高度和宽度。同样,只有在第二次或第三次调用onMeasure(...)
尺寸为最终尺寸之后,您才可能会遇到麻烦。
如果要通过代码设置宽度和高度,请使用以下命令:
ViewGroup.LayoutParams lp = gestureOverlayView.getLayoutParams();
if(lp == null) {
// not yet added to parent
lp = new ViewGroup.LayoutParams(desiredWidth, desiredHeight);
} else {
lp.width = desiredWidth;
lp.height = desiredHeight;
}
gestureOverlayView.setLayoutParams(lp);
yourparent.addView(gestureOverlayView, lp);
请注意,您还需要选择正确的
LayoutParams
实现。在这里,我使用ViewGroup
之一。