2009-12-03 4 views
0

У меня есть ListView. Я заполняю его 8 элементами, это все, что подходит по вертикали на G1. Некоторые из моих пользователей говорят, что Droid имеет более высокую высоту экрана, и поэтому я могу добавить еще один или два элемента в ListView, чтобы заняться дополнительным пространством.Получение высоты экрана перед первым отображением?

Как измерить доступную высоту экрана при запуске, до отображения пользовательского интерфейса? Если я вижу, что высота может содержать более 8 элементов, я бы хотел добавить еще одну или две строки.

+3

Это звучит как опасный путь, вы направились вниз, потому что, если пользователь решит включить их G1 в ландшафтном режиме? Что относительно меньших размеров экрана, чем G1, где ваши текущие 8 предметов будут слишком большими? –

+0

Да, отличный момент - я нервничаю в этом, чтобы быть честным, но хотел исследовать. Я думаю, что это может быть разумным догадком: при запуске приложения получить высоту экрана в портретном режиме. Используйте это как мой стандарт, чтобы выяснить, сколько элементов отображать. Я в порядке с ними, начиная приложение в ландшафтном режиме, и имея больше предметов, которые соответствуют этой ориентации. В идеале я просто хочу, чтобы там было такое количество элементов, что когда они находятся в портретном режиме, все элементы подходят без необходимости прокрутки, Спасибо – Mark

+1

Является ли это своего рода динамически растущим списком? Вы всегда можете просто взять молот в проблему и сначала погрузить 16 предметов. Если вы не делаете сумасшедшие вещи для заполнения каждой строки, я не думаю, что это будет заметная разница в скорости, и таким образом список все равно будет выглядеть «полным» на более высоких разрешениях, не беспокоясь о том, чтобы обручи перескочили о котором упоминал Даниил. – MattC

ответ

0

Я согласен с замечаниями, сделанными выше, но если вы действительно хотите, чтобы идти по этому пути, попробуйте следующее:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

Вы можете сделать это с вашей основной деятельностью, тот, который начался с запуска.

Однако это не учитывает пространство, занимаемое панелью уведомлений или оформлением окна, поэтому на самом деле у вас есть меньше пространство, чем ширина раз высота.

0

Вот код, я использую больше всего:

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.????????); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    Constants.SCREEN_HEIGHT = dm.heightPixels; 
    Constants.SCREEN_WIDTH = dm.widthPixels; 
    } 
} 

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

  • Нет связанных вопросов^_^