Android DPI независимость на устройствах с таким же разрешением - PullRequest
0 голосов
/ 04 января 2012

У меня есть несколько общих вопросов о независимости экрана Android / DPI / разрешения.

По сути, я имею в виду приложения на основе спрайтов, например, основанные на Surfaceview.

В каждом прочитанном мною руководстве (включая официальное) говорится, что вы должны работать только с DPI, а не с разрешением.

Однако, что происходит, когда два устройства имеют разные DPI / размер экрана, но одинаковое разрешение? Возьмите вкладку Galaxy 10.1 (1280 x 800 - DPI aprox 150) и Galaxy Note (1280 x 800 aprox 285 DPI, я думаю ??)

При отображении спрайта, скажем, 50 х 50 на каждом из них, он будет иметь одинаковый размер относительно размера экрана. Однако, если Android получает спрайт разного размера, потому что он обнаруживает другой DPI (то есть, из LDPI, HDPI и т. Д.), Тогда спрайт будет больше в Note по сравнению с размером экрана, чем в Tab.

Может кто-нибудь, пожалуйста, объясните мне это, поскольку я просто не могу понять это !! Спасибо всем.

1 Ответ

3 голосов
/ 04 января 2012

Спрайт 50 x 50 на экране с разрешением 150 точек на дюйм будет намного больше, чем спрайт 50 x 50 на экране с разрешением 285 точек на дюйм.Алгоритм разрешения ресурсов Android предназначен для того, чтобы вы могли определить большее (в пикселях) изображение для использования на экранах с более высокой плотностью.

Если вы хотите, чтобы спрайт был одинакового размера относительно экрана независимо от плотности пикселей, вы можете поместить изображения в папку drawable-nodpi, и они не будут масштабироваться системой.Вы даже можете решить, какой размер изображения использовать в коде после запроса размера экрана.(Начиная с версии 3.2 у вас могут быть папки ресурсов, которые зависят от размера пикселя экрана, но я думаю, что они будут масштабироваться с разрешением dpi.)

Разрешение экрана относится к размеру экрана в пикселях.Плотность пикселей означает количество пикселей, необходимое для заполнения дюйма экрана.

...