2016-11-19 6 views
1

Я хочу получить размер макета или размер (не размер экрана) ширины в некоторых устройствах Android, так как я могу это сделать? Например:Как получить ширину и высоту макета warp_content или match_parent в android?

<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"/> 

У меня есть этот макет и я хочу, чтобы получить ширину макета и размер высоты (в купании) во время выполнения, как я могу это сделать?

+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); 

и вы можете использовать methodes ниже после того, как поток пользовательского интерфейса был размером и положил

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

надеюсь, что это помогает.

если вы проблемы с использованием метода взять выше взглянуть на getWidth() and getHeight() of View returns 0

+0

Код выше должен сделать трюк, однако, не назовите его слишком рано (onCreate например), так как пользовательский интерфейс должен быть определен и заложен первым. Взгляните на http://stackoverflow.com/questions/3591784/getwidth-and-getheight-of-view-returns-0 для получения дополнительной информации. – fbwnd

+0

это доцентная работа. myview.getHeight и myview.getWidth() = 0 – b4hr4m

+0

Я думаю, что вы называете это слишком рано, вы должны использовать его после того, как поток пользовательского интерфейса будет иметь размер и размер. посмотрите ссылку, приведенную @fbwnd выше –