2013-02-11 2 views
3

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

Я читал Supporting Different Screen Sizes и Supporting Multiple Screens.

Итак, я сделал 4 изображения для каждого фона с такими размерами: 320x480, 480x800, 600x1024, 800x1280. Во-первых, я помещал файлы в эти папки соответственно: drawable-sw320dp, drawable-sw480dp, drawable-sw600dp, drawable-sw720dp. Затем я понял, что это работает только для Android 3.2 и выше, поэтому мне нужно было добавить небольшие, обычные, большие и xlarge папки. Чтобы не дублировать файлы, я придерживался идей this section of the first article.

Конечная структура:

  • Все изображения внутри папки drawable, с разными именами для каждого измерения
  • Файл XML в каждой из этих папок: values-sw320dp, values-sw480dp, values-sw600dp, values-sw720dp, values-small, values-normal, values-large, values-xlarge

Например, на фоне основного вида деятельности:

  • drawable\bg_main_320.png
  • drawable\bg_main_480.png
  • drawable\bg_main_600.png
  • drawable\bg_main_720.png
  • И drawables.xml в восемь папок, названных выше.

Содержание drawables.xml для папок values-sw480dp и values-normal является:

<resources> 
    <item name="bg_main" type="drawable">@drawable/bg_main_480</item> 
</resources> 

Я испытал это в Android 2.3.7 и 4.0.3, и это работает отлично. Тем не менее, я получаю это предупреждение Lint для каждого изображения: «Найденный битмап drawable res/drawable/bg_main_480.png в папке с плотностью. Проблема: гарантирует, что изображения не определены в независимой от плотности переносимой папке». Я знаю, что это значит, но я не буду продолжать создавать больше изображений для каждого dp, поскольку это бессмысленно.

Является ли структура, которую я использую правильно? Что ты предлагаешь?

ответ

8

/res/drawable не должен иметь никаких файлов изображений, он должен включать только чертежи, определенные с использованием XML. Вы должны разместить свои фактические файлы изображений в квалифицированных каталогах с возможностью рисования на основе целевой плотности пикселей.Если вы не хотите, чтобы указать любой спецификатор, поместите их в /res/drawable-nodpi

+0

Справка «Линт» говорит: «Если значок действительно не зависит от плотности (например, сплошной цвет), вы можете поместить его в drawable-nodpi». Итак, я не был уверен, что использование этой папки было правильным. В любом случае, я использовал правильную структуру? (размеры и папки) – IvanRF

+0

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

+0

Спасибо за ваш ответ. Пока, я буду перемещать изображения в/res/drawable-nodpi. Возможно, в будущем я подумаю о том, как воссоздать изображения с более сложными чертежами. – IvanRF

-1

Вы можете найти полезную информацию здесь info

, а также в «Рес» forlder вы можете увидеть различные: вводимого коэффициента 36x36 для низкой плотности

48x48 для средней плотности

72x72 с высокой плотностью

96x96 для дополнительной высокой плотности

Вы можете разместить свои файлы для конкретного разрешения.

+0

Вы прочитали сообщение? Я уже упоминал, что статья и вопрос не о папках dp. – IvanRF

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