Как добавить значки разного разрешения в приложение для Android? - PullRequest
2 голосов
/ 10 июня 2010

Документы Android указывают, что я должен поставлять разные иконки для экранов телефонов с разным разрешением.http://developer.android.com/guide/practices/screens_support.html#qualifiers

  • res/drawable-ldpi/my_icon.png // icon image for low density
  • res/drawable-mdpi/dpi/my_icon.png // icon for medium density
  • res/drawable-hdpi/my_icon.png // icon image for high density

Не работает при компиляции с Eclipseдля андроида.У кого-нибудь есть пример файла манифеста, который работает для значков с несколькими разрешениями?

Спасибо, Джерри

1 Ответ

0 голосов
/ 10 июня 2010

Вы все равно должны называть свою иконку как @drawable/my_icon

Раздел Обеспечение ресурсами Руководства для разработчиков идет еще дальше и показывает, как можно создавать более сложные псевдонимы, в следующем разделе:

Создание псевдонимов ресурсов

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

Примечание: Не все ресурсы предлагают механизм, с помощью которого вы можете создать псевдоним для другого ресурса. В частности, анимация, меню, сырые и другие неопределенные ресурсы в каталоге xml/ не предоставляют эту функцию.

Например, представьте, что у вас есть значок приложения, icon.png, и вам нужна его уникальная версия для разных локалей. Тем не менее, два языка, английский-канадский и французско-канадский, должны использовать одну и ту же версию. Вы можете предположить, что вам нужно скопировать одно и то же изображение в каталог ресурсов для англо-канадского и франко-канадского языков, но это не так. Вместо этого вы можете сохранить изображение, которое используется для обоих icon_ca.png (любое имя, отличное от icon.png) и поместить его в каталог res/drawable/ по умолчанию. Затем создайте файл icon.xml в res/drawable-en-rCA/ и res/drawable-fr-rCA/, который ссылается на ресурс icon_ca.png, используя элемент <bitmap>. Это позволяет хранить только одну версию PNG-файла и два небольших XML-файла, которые указывают на него. (Пример XML-файла показан ниже.)

Drawable

Чтобы создать псевдоним для существующего чертежа, используйте элемент <bitmap>. Например:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/icon_ca" />

Если вы сохраните этот файл как icon.xml (в альтернативном каталоге ресурсов, например res/drawable-en-rCA/), он будет скомпилирован в ресурс, на который вы можете ссылаться как R.drawable.icon, но на самом деле это псевдоним для R.drawable.icon_ca ресурс (который сохраняется в res/drawable/).

Однако вам не нужно создавать псевдонимы, если у вас просто разные значки для разных плотностей экрана. Квалификаторы каталога ресурсов, показанные в таблице, на которую вы ссылаетесь : ldpi, mdpi и hdpi. Квалификаторы используются при поиске альтернативных ресурсов (выделение добавлено):

Спецификатор hdpi указывает, что ресурсы в этом каталоге предназначены для устройств с экраном высокой плотности. Хотя изображения в каждом каталоге для рисования имеют размер, соответствующий определенной плотности экрана, имена файлов совпадают. Таким образом, идентификатор ресурса, который вы используете для ссылки на изображение icon.png или background.png, всегда один и тот же, но Android выбирает версию этого чертежа, которая лучше всего соответствует текущей конфигурации устройства .

...