onSizeChanged возвращает ширину, но не высоту - PullRequest
3 голосов
/ 08 января 2012

Мне нужно получить высоту и ширину моего View, и я следовал приведенным здесь примерам с подклассами View и использованием onSizeChanged (...). Но что очень странно, это то, что onSizeChanged дает мне правильную ширину, но высота всегда равна 0. Вот мой подкласс:

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 Ответ

2 голосов
/ 08 января 2012

Я думаю, что это нормально, в вашем представлении нет контента, поэтому высота равна 0.

Попробуйте добавить текст в ваше собственное текстовое представление, и высота изменится

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

Размеры экрана устройства: http://developer.android.com/reference/android/util/DisplayMetrics.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...