Алгоритм / шаблон размера экрана Android - PullRequest
2 голосов
/ 17 сентября 2011

Я ищу Алгоритм или Шаблон, чтобы вычислить, где объекты могут быть размещены в нескольких разрешениях.Пока что у меня есть размеры экрана X и Y, но я не уверен, как превратить его в вычисление, которое поместило бы что-то вроде drawText () в определенном месте экрана независимо от размера экрана.

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

когда я запускаю это на эмуляторе, с

drawText (информация,10,10, рисовать);

отображается великолепно, но когда я запускаю его на своем телефоне (Droid 2 Global), верхняя часть текста обрезается.

Короче говоря:

Есть ли способ нарисовать что-то на экране (используя SurfaceView), которое останется в том же месте на нескольких размерах экрана / точек на дюйм?

Спасибоза ваше время.

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

да, лучше использовать расчет в процентах

сначала получите общий размер экрана, а затем вычислите процент на нем и поместите элемент управления на основе расчета

чтобы получить размер

Display mDisplay= activity.getWindowManager().getDefaultDisplay();
int width= mDisplay.getWidth();
int height= mDisplay.getHeight();
1 голос
/ 17 сентября 2011

Это не идеальное решение, которое я видел до сих пор.

Я столкнулся с этой проблемой, указав позицию для конкретного элемента для определенного соотношения экранов (собственное разрешение экрана в эмуляторе), а затем пересчитал его положение и увеличил / уменьшил его при запуске на экране другого размера. 1003 *

  displayXpos =  constDevelopmentScreenXpos (targetDeviceScreenHeight/constDevelopmentScreenHeight) etc..
  displayXScale = similarAlgorithm

Это не самое лучшее, но это дает вам некоторое представление.

Кроме того, я заполняю некоторую область «подвешенного состояния» фоном и выбираю не заботиться о том, когда соотношение экрана целевого устройства X: Y отличается от отношения устройства разработки.

НТН

...