2010-01-06 2 views
11

Каковы размеры по умолчанию для обоев рабочего стола/фона для различных конфигураций экрана Android (маленькие, обычные и большие экраны с низкой, средней и высокой плотностью)?Обои для рабочего стола обоев/фоновые размеры

Поддерживаются ли 9-патч-файлы PNG для обоев? Должен ли я использовать их вместо этого?

Я нашел метод на уровне API 5, который дает минимальный размер обоев, но я хотел бы также поддерживать предыдущие версии Android.

Спасибо!

ответ

27

Обои в два раза шире, чем устройство, находящееся в портретном режиме. Так 960x800 на Nexus One, 960x854 на Droid, 640х480 на G1/Magic/Hero и т.д.

+0

Спасибо Ромен! Приятно видеть разработчиков Android от Google здесь. – hpique

+2

Это все еще верно для новых пользовательских интерфейсов? – ina

+2

Это верно и для пользовательских интерфейсов планшета? –

3

This article on the Android Developers' site показывает диапазон разрешений экрана для каждой плотности.

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

WallpaperManager API указывает на то, что вы должны использовать PNG- или JPEG-формат изображения, даже если вы используете метод setResource() — ресурс должен быть Bitmap и поэтому не девять-патч или другой тип Drawable.

+1

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

+0

Ой, совершенно верно .. Я собирался сказать, что вам нужно иметь фон, по крайней мере, с самым большим квадратом. У меня есть HTC Hero, который не делает пейзажа на главном экране, поэтому я действительно не исследовал, как обрабатывается проблема салфетки/ширины. –

0

Не раздумывайте, спросите WallpaperManager:

manager = WallpaperManager.getInstance(this); 
    width = manager.getDesiredMinimumWidth(); 
    height = manager.getDesiredMinimumHeight();