我正在开发一个使用图像并具有约束布局的android应用程序。高度和宽度的属性设置为“包装内容”,表示它们不是固定的。在该图像上,我正在使用圆创建图形。为此,我应该知道图像的宽度和高度的确切值。如何获取从XML到Java的width和height值?
您可以在运行时使用getWidth
和getHeight
获取任何视图的尺寸(在本例中为constraint layout
)。
但是要小心,在使用这两种方法之前,您必须确保constraint layout
已经创建了view(),否则它将返回0,女巫意味着您无法在中调用它们onCreate
。
因此,正确的方法是等待视图创建,然后获取其大小。像这样 :
创建此方法
public static void runJustBeforeBeingDrawn(final View view, final Runnable runnable) {
final OnPreDrawListener preDrawListener = new OnPreDrawListener() {
@Override
public boolean onPreDraw() {
view.getViewTreeObserver().removeOnPreDrawListener(this);
runnable.run();
return true;
}
};
view.getViewTreeObserver().addOnPreDrawListener(preDrawListener);
}
然后在需要获取尺寸时调用它
runJustBeforeBeingDrawn(yourView, new Runnable() {
@Override
public void run() {
//Here you can safely get the view size (use "getWidth" and "getHeight"), and do whatever you wish with it
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句