2012-04-17 88 views
0

我的如下佈局:如何獲得TextView的高度

<LinearLayout 
    android:id="@+id/layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:orientation="vertical" > 


    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 


    <TextView 
     android:id="@+id/info" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

我的如下代碼:

TextView title = (TextView)findViewById(R.id.title); 
title.setText("ABCDE..."); 
title.setTextSize(20); 

TextView info = (TextView)findViewById(R.id.info); 
info.setText("abcde..."); 
info.setTextSize(16); 

LinearLayout layout = (LinearLayout)findViewById(R.id.layout); 

我想TextView的標題和信息,或佈局的高度的高度。 如何做到這一點?

+2

參閱此http://stackoverflow.com/questions/4912687/android-get-the-height -of-the-textview – gandharva 2012-04-17 09:00:29

+2

use title.getHeight(); – 2012-04-17 09:03:48

+0

我不是Java專家。但是,當一個方法/函數正在運行並且用新的文本字符串填充TextView時,電視將不會被立即驗證。只有在功能完成後。所以你無法獲得新的TextView的高度或寬度。然而,TexView已經得到了invalidate()和refreshDrawableState(),但他們只是不應該像應該那樣工作。這是Android Java中的一個問題。我希望KitKat能夠解決所有問題。 – TomeeNS 2013-11-03 17:52:30

回答

3

您可以嘗試getLineHeight()方法。例如:

title.getLineHeight(); 
info.getLineHeight(); 
0

使用View的getHeight()函數。所以在URE情況下,info.getHeight(),layout.getHeight()等等

1

@Ovveride onWindowFocusChanged method in your activity

@Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 

     int x = title.getHeight(); 
     int y = info.getHeight(); 
     int z = layout.getHeight(); 
    }