2012-01-08 121 views
1

我需要得到我的視圖的高度和寬度,我已經遵循這裏給出的例子與子類View和使用onSizeChanged(...)。 但是很奇怪的是,onSizeChanged給了我正確的寬度,但高度始終爲0。這裏是我的子類:onSizeChanged返回寬度,但不是高度

public class MyView extends TextView { 
int xMax=0; int yMax=0;Context c; 

public MyView(Context context) { 
    super(context); 
    this.c=context; 

} 
@Override 
    public void onSizeChanged(int w, int h, int oldW, int oldH) { 

     xMax = w; 
     yMax = h; 

我的動態類:

public void onCreate(Bundle savedInstanceState) { 


    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    TextView dummyView = new MyView(this); 

    LinearLayout ll = (LinearLayout) findViewById(R.id.mainmtc); 
    ll.addView(dummyView); 

和我的XML佈局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainmtc" android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:weightSum="1" 
androiad:orientation="vertical"> 

回答

1

我認爲這是正常的,有在你看來沒有任何內容,所以高度爲0

嘗試在自定義的TextView添加一些文字和高度將更改

TextView dummyView = new MyView(this); 
dummyView.setText("Hello"); 

設備的屏幕尺寸:http://developer.android.com/reference/android/util/DisplayMetrics.html

+0

會做(我是新來的StackOverflow)。但是,我的問題的解決方案是什麼?所有發現的例子從未提及過這種情況? – michaelsmith 2012-01-08 12:18:39

+0

現在這樣做了,但高度仍然是0.當旋轉設備時,我改變寬度,但不是高度。我需要獲取設備屏幕的尺寸。我採取了正確的方法嗎? – michaelsmith 2012-01-08 12:26:28

+0

設備屏幕尺寸可以通過DisplayMetrics類檢索 – ChristopheCVB 2012-01-08 12:27:54

相關問題