Android: доступные для рисования разрешения - PullRequest
10 голосов
/ 16 февраля 2011

Я прошел через этот пост (и другие), а также через документацию о поддержке различных разрешений экрана в Android, но я не смог найти четкого ответа на(простой) вопрос:

Можно ли просто использовать «res / drawable» для изображений в приложении для Android?

Фон: единственные изображения, которые необходимы в этом конкретном приложении, - этоСам значок приложения и значок уведомления, в макете не будет изображений.Так что, насколько я понимаю, если папок «hdpi», «mdpi» и «ldpi» не найдено, Android будет использовать «res / drawable» в качестве запасного варианта.Поскольку единственной ошибкой с другим разрешением экрана, по-видимому, является то, что Android будет масштабировать изображения для определенного разрешения, если не было найдено специального изображения, это должно быть проблемой только при увеличении масштаба, поскольку изображение станет размытым.Но если я предоставлю все изображения "hdpi" в "res / drawable" (вместо 3-х разных), разве Android не просто уменьшит масштаб этих изображений, если их размер слишком велик?Если это правда, я мог бы сэкономить некоторое APK-пространство всего лишь одной третью изображений.

Дополнительный вопрос: я прочитал, что для уровня API 3 требуется каталог с именем "drawable-v3",Это правда или это «отрисовка» - запасной вариант для этого уровня API?

Любая подсказка приветствуется.

Ответы [ 6 ]

7 голосов
/ 16 февраля 2011

Предполагается, что изображения в папке drawables имеют разрешение mdpi, поэтому они будут увеличиваться / уменьшаться, если вы не предоставите другие.

Масштабированные изображения будут иметь низкое разрешение и выглядеть нечеткими. В уменьшенных изображениях пиксели будут отсутствовать и выглядят неровно.

Таким образом, ваше приложение будет «работать» только с одним набором изображений по умолчанию, но будет выглядеть ужасно на многих устройствах. Я настоятельно советую вам создавать изображения разных размеров, чтобы они отлично выглядели на всех устройствах - это немного скучно, но не сложно.

Скоро у нас появятся устройства xhdpi, поэтому, пока вы работаете с ними, вы, возможно, захотите их тоже создать.

Полагаю, вы прочитали это

2 голосов
/ 16 февраля 2011

Если у вас нет причин нацеливаться на устройства до Donut (сейчас только 4% устройств в соответствии с http://developer.android.com/resources/dashboard/platform-versions.html),, то вы должны поместить свои растровые изображения в один из каталогов -Xdpi. Общий каталог "drawable" является синонимом «drawable-mdpi» по причинам совместимости, но современное хорошо написанное приложение должно помещать свои drawables в каталог, соответствующий плотности, для которой они предназначены.

2 голосов
/ 16 февраля 2011

Я использую drawable / все время, а затем иду в BestBuy и все местные магазины беспроводной связи и тестирую свои приложения на маленьких / больших / огромных (планшетных) устройствах, и они выглядят просто отлично.

2 голосов
/ 16 февраля 2011

Не полный ответ, но: сильно уменьшенные изображения могут и обычно выглядят так же плохо, как увеличенные (но по-другому), поскольку графические библиотеки почти исключительно используют методы интерполяции для изменения размера, а методы интерполяции ограничены в терминахнасколько они могут уменьшить изображение до серьезной потери информации (до 50% для линейных методов и до около 25% для бикубических методов).Вот почему на большинстве платформ разработаны соглашения (такие как hdpi, mdpi и т. Д.), Позволяющие встраивать изображения, которые лучше всего подходят для каждого размера экрана.

0 голосов
/ 25 февраля 2012

Для чего бы это ни стоило, я считаю, что обработка изображений в Android утомительна и ненадежна. Концепция включения изображений разного размера для разных экранов приведет к большим размерам файлов приложений с изображениями. Уже есть экраны, которые не соответствуют стандартным диапазонам разрешения. Я обнаружил, что лучше всего не допускать, чтобы Android обрабатывал масштабирование, кажется, что оно создает базовое изображение для самого маленького экрана, на который вы нацеливаете, а затем масштабируете его, получая в результате обычные изображения на больших экранах. Это происходит, даже если вы сделали изображение специально для большого экрана. Мое решение, которое, кажется, работает на всем, от 2-дюймового телефона Samsung до планшета Sony, - это создавать изображения с высоким разрешением и использовать Bitmap.createScaledBitmap (), чтобы получить нужный мне размер.

Предостережение: я новичок в Android и у меня есть чему поучиться.

0 голосов
/ 16 февраля 2011

res / drawable - это запасной вариант

предостережение в том, что масштабирование не только ухудшает изображение, но и требует времени на обработку.

Я еще даже не читал документы API уровня 3,извините за 1/2 ответа

...