如何以编程方式设置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);
答案 0 :(得分:1)
在读出高度和宽度之前,您需要先添加视图。此外,只有在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
中的那个。