Android获取膨胀的layout layout_width和layout_height值

Android获取膨胀的layout layout_width和layout_height值,第1张

概述在Android中,如何获取在XML文件中设置的值?my_layout.xml:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apkes/android"android:layout_width="300dp"android:layo

在Android中,如何获取在XML文件中设置的值?

my_layout.xml:

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="300dp"    androID:layout_height="500dp"    androID:orIEntation="vertical" >    .....<relativeLayout/>

我已经尝试了以下方法,但均未成功:

VIEw v = ((LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(            R.layout.my_layout, null);//this gave me -1(LayoutParams.FILL_PARENT), which is not what I want. I need 300v.getLayoutParams().wIDth// same for height, it gives me -1 v.getLayoutParams().wIDth

我不在乎视图的实际外观,我只需要这些值…

我知道在完成测量后就可以获取视图的宽度和高度(onGlobalLayout),但这不是我所需要的.我需要的是XML中的值.

EDIT1:我知道v.getWIDth()和v.getHeight()在视图显示在屏幕上后可以工作,在测量发生之前它们将无法工作

解决方法:

如果您要解析XML布局以获取一些属性,请尝试以下 *** 作:

 Resources r = getResources();    XmlResourceParser parser = r.getLayout(R.layout.your_layout);    int state = 0;    do {        try {            state = parser.next();        } catch (XmlPullParserException e1) {            e1.printstacktrace();        } catch (IOException e1) {            e1.printstacktrace();        }               if (state == XmlPullParser.START_TAG) {            //here get the attributes you want..., with AttributeSet for example            }        }    } while(state != XmlPullParser.END_document);
总结

以上是内存溢出为你收集整理的Android获取膨胀的layout layout_width和layout_height值全部内容,希望文章能够帮你解决Android获取膨胀的layout layout_width和layout_height值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存