2016-11-19 90 views
1

我想让我的布局或视图(不是屏幕尺寸)的宽度在一些Android设备的高度,所以我该如何做到这一点?例如:如何在android中获取warp_content或match_parent布局的宽度和高度?

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:paddingRight="8dp" 
    android:paddingLeft="8dp" 
    android:id="@+id/layout_scrol_left"/> 

我有这样的布局,我想布局宽度和高度运行时大小(DIP),我该怎么办呢?

+0

可能重复[获取屏幕宽度和高度](http://stackoverflow.com/questions/4743116/get-screen-width-and-height) –

+1

我的问题是不同的,我想让我的视图或布局大小在运行时间,而不是屏幕尺寸 – b4hr4m

回答

2

首先,你需要把你的布局。

LinearLayout ll_left = (LinearLayout)findViewById(R.id.layout_scrol_left); 

现在,如果ll_left还没有绘制这两个ll_left.getHeight()和ll_left.getWidth()将返回0

所以,你必须让他们的图绘后:

ll_left.post(new Runnable(){ 
    public void run(){ 
     int height = ll_left.getHeight(); 
     int weight = ll_left.getWidth(); 
    } 
}); 
+2

谢谢。我的问题脱身:) – b4hr4m

+0

没问题。请记住标记答案是否有帮助。 –

0

我想你可以使用类似

LinearLayout myView =(LinearLayout)findViewById(R.id.layout_scrol_left); 

,你可以使用下面的后UI线程一直尺寸的methodes奠定

myview.getHeight(); 
    myview.getWidth(); 

希望这会有所帮助。

如果你上面的问题使用方法看看getWidth() and getHeight() of View returns 0

+0

上面的代码应该做的伎俩,但是,不要因为UI的大小和放置首先被调用得太早(例如创建)。 看看http://stackoverflow.com/questions/3591784/getwidth-and-getheight-of-view-returns-0了解更多信息 – fbwnd

+0

it剂量工作。 myview.getHeight和myview.getWidth()= 0 – b4hr4m

+0

我认为你调用它太早,你应该在UI线程调整大小和放置后使用它。看看@fbwnd上面给出的链接 –