如何以编程方式设置 GestureOverlayView 的
宽度和高度?
我尝试了下面的代码。但是我在设置宽度和高度时遇到空指针异常。
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);
最佳答案
需要先添加view,才能读出高宽。此外,只有在第二次或第三次调用 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
之一。
关于android - 以编程方式设置 GestureOverlayView 宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23075660/