2012-01-08 2 views
1

Мне нужно получить высоту и ширину моего представления, и я последовал приведенным здесь примерам с подклассом Просмотр и использование 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 Layout:

<?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

+0

Сделал это сейчас, но высота по-прежнему равна 0. При повороте устройства меняет ширину, но не высоту. Мне нужно получить размеры экрана устройства. Правильно ли я подхожу? – michaelsmith

+0

Размеры экрана устройства могут быть получены с помощью класса DisplayMetrics – ChristopheCVB

Смежные вопросы