Android: доступные разрешения
Я прошел через этот пост (и другие), а также через документацию о поддержке различных разрешений экрана в Android, но я не смог найти четкий ответ на (простой) вопрос:
Можно ли просто использовать "res/drawable" для изображений в приложении Android?
Фон: единственные изображения, которые необходимы в этом конкретном приложении, - это значок приложения и значок для уведомления, в любом макете не будет изображений.
Поэтому, в моем понимании, если нет, hdpi", "mdpi" и "ldpi", Android будет использовать "res/drawable" в качестве резервной копии. Как единственная ошибка с разным разрешением экрана, похоже, что Android будет масштабировать изображения для конкретного разрешения, если не найдено специального, это должно быть проблемой только при UPscaling, потому что изображение будет размыто. Но если я предоставил все "hdpi" -изображения в "res/drawable" (вместо 3 разных), не будет ли Android просто DOWN масштабировать эти изображения, если размер слишком велик?
Если это правда, я мог бы сэкономить некоторые APK-пространства на одну треть изображений.
Последующий вопрос: я прочитал, что для уровня API 3 требуется имя dir с именем "drawable-v3". Является ли это истинным или "вытягивающим" резерв для этого уровня API также?
Любой намек оценивается.
Ответы
Ответ 1
Предполагается, что изображения в папке drawables имеют разрешение mdpi, поэтому они будут масштабироваться вверх/вниз, если вы не предоставите другие.
Масштабированные изображения будут иметь низкое разрешение и выглядят нечеткими. У уменьшенных изображений будут отсутствовать пиксели и выглядеть неровными.
Итак, ваше приложение будет "работать" только с одним набором изображений по умолчанию, но будет выглядеть ужасно на многих устройствах. Я настоятельно рекомендую вам создавать изображения разных размеров, поэтому он отлично смотрится на всех устройствах - это немного скучно, но не сложно.
Не скоро у нас будут устройства xhdpi, поэтому, пока вы на нем, вы также можете создать их.
Я предполагаю, что вы прочитали this
Ответ 2
Не полный ответ, но: сильно уменьшенные изображения могут и обычно выглядят так же плохо, как и масштабированные изображения (но по-другому), потому что графические библиотеки почти исключительно используют методы интерполяции для изменения размера, а методы интерполяции ограничены в терминах насколько они могут сжимать изображение до серьезной потери информации (до 50% для линейных методов и до 25% для бикубических методов). Вот почему на большинстве платформ были разработаны соглашения (например, hdpi, mdpi и т.д.), Которые позволяют вставлять изображения, которые лучше всего подходят для каждого размера экрана.
Ответ 3
Я использую drawable/все время, а затем я иду в BestBuy и все локальные магазины беспроводной сети и тестирую свои приложения на небольших/больших/огромных (планшетных) устройствах, и они выглядят просто отлично.
Ответ 4
Если у вас нет причин ориентироваться на устройства до-Donut (теперь только 4% устройств в соответствии с http://developer.android.com/resources/dashboard/platform-versions.html), то вы должен помещать ваши растровые изображения в один из каталогов -Xdpi. Общий "drawable" каталог является синонимом "drawable-mdpi" по соображениям совместимости, но современное хорошо написанное приложение должно помещать свои чертежи в каталог, соответствующий плотности, для которой они предназначены.
Ответ 5
res/drawable - резервный
предостережение заключается в том, что масштабирование не только ухудшает изображение, но и время обработки.
Я даже не читал документы API-уровня 3, извините за ответ 1/2
Ответ 6
Для чего я считаю, что обработка изображений на Android была утомительной и ненадежной. Концепция включения изображений разных размеров для разных экранов приведет к разрастанию больших файлов приложений с помощью изображений. Уже есть экраны, которые не соответствуют стандартным диапазонам разрешения. Я нашел, что лучше не позволять андроиду обрабатывать масштабирование, похоже, создает базовое изображение для самого маленького экрана, на который вы нацеливаетесь, а затем масштабируйте его, в результате получив обычные изображения на больших экранах. Это происходит, даже если вы сделали изображение специально для большого экрана.
Мое решение, которое, похоже, работает на всем, от 2-дюймового телефона Samsung до планшета Sony, - это создание изображений с высоким разрешением и использование Bitmap.createScaledBitmap() для получения необходимого размера.
caveat: Я новичок в Android и у меня есть чему поучиться.