如何从Android中的XML获取图像的大小

奥拜德·乌尔·雷曼(Obaid Ur Rehman)

我正在开发一个使用图像并具有约束布局的android应用程序。高度和宽度的属性设置为“包装内容”,表示它们不是固定的。在该图像上,我正在使用圆创建图形。为此,我应该知道图像的宽度和高度的确切值。如何获取从XML到Java的width和height值?

第一开发

您可以在运行时使用getWidthgetHeight获取任何视图的尺寸(在本例中为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
        }
    });

与您的问题有关:
视图的getWidth()和getHeight()返回0
确定运行时Android视图的大小

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章