Размер экрана Сотовое меню на андроид - PullRequest
3 голосов
/ 03 марта 2011

Привет. Я пытаюсь получить размер экрана за вычетом строки меню в нижней части.

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

Это аналогичный пост. Размер панели уведомлений Android и строки заголовка?

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

what_i_need =metrics.heightPixels-buttomMenuHeight();

Мне нужен buttomMenuHeight ();

Я не смог найти его в API.На данный момент меня не волнует обратная сопоставимость

Спасибо

Ответы [ 3 ]

7 голосов
/ 03 марта 2011

Почему бы не использовать высоту представления верхнего уровня упражнения? например если ваша активность содержит LinearLayout полной высоты, используйте ее высоту, чтобы вам не нужно было знать высоту меню или высоту панели уведомлений.

Я думаю, что вы идете по опасной дороге, выполняя подобные расчеты, поскольку вы не знаете, какими могут быть будущие макеты для Android, или как они могут отличаться на Google TV, или что-то в этом роде.

1 голос
/ 09 марта 2011

Попробуйте вызвать getHeight () после onLayout. Вид не рассчитан на надув.

EDIT: Или, поскольку у Activity нет onLayout, вы можете подождать onSizeChanged.

(Ссылка Как узнать, когда запланирована деятельность? )

0 голосов
/ 03 марта 2011

Я рисую изображение в собственном коде, и мне нужно передать размер экрана в C.

Я пытался получить Высота с помощью getHeight () представления, но это возвращает 0 всегда, даже после setContentViewназывается.

RelativeLayout masterLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
masterLayout.setLayoutParams(params);
setContentView(masterLayout);

, когда я пытаюсь выполнить masterLayout.getHeight (), он возвращает 0. Я ожидал получить полную высоту экрана, как я сказал fill_parent.

...