Использование значков из системы вместо копирования их в ваш проект

1

Для обычных значков Android (например, значков контекстного меню) я обычно копирую стандартные значки Android в свой проект. Недавно я понял, что вы также можете получить эти значки из системы, используя android.R.drawable.blablabla. Поэтому мой вопрос в том, есть ли какая-то причина предпочитать один подход над другим?

И если лучше использовать системные, как вы получаете доступ к ним в XML?

Благодарю!

Теги:

3 ответа

7
Лучший ответ

Вы можете получить к ним доступ, добавив "@android", то есть:

<Image android:src="@android:drawable/ic_menu_add" android:layout_height="wrap_content" android:layout_width="wrap_content"/>

Если вы используете системные ресурсы, у вас будет меньше контроля над тем, как будет выглядеть репозиторий. Вы получите ressource, установленный на текущем устройстве, и который отличается по всем устройствам, производствам и версии Android.

  • 0
    Я уверен, что пользователь оценит последовательность всех приложений на своем устройстве.
  • 2
    Это все или ничего. Если вы используете все предоставленные системой значки, вы будете уверены в единообразном оформлении всех приложений на устройстве. Если вы используете в основном системные значки и несколько собственных, предназначенных для ... ну, вписаться в какое устройство? Если вы используете настраиваемые значки для некоторых элементов, единственный способ обеспечить единообразный внешний вид - это использовать настраиваемые значки для всех ваших элементов.
6

Справочная система изображений

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

  • GOOD: будет соответствовать уровню ОС (некоторые значки меняются во время итераций)
  • ХОРОШО: хорошо сыграет с фондовым пользовательским интерфейсом и пользовательскими темами
  • ХОРОШО: Нет необходимости показывать лицензию Apache2 (IANAL)
  • BAD: может нарушить внешний вид вашего приложения.
  • BAD: Ограничено официально экспортированными изображениями

Как видите, в обоих решениях есть недостатки. Например, вы можете использовать черно-белый значок браузера, чтобы символизировать ссылку на браузер. Значок не экспортируется официально, поэтому вам нужно его скопировать. Но в этом случае вы должны повиноваться лицензии на используемые иллюстрации. Это включает в себя атрибуцию контента, созданного проектом Android Open Source (подробности см. В вашей копии файла лицензии)

Использование в XML

Вы всегда можете использовать префикс android: для ссылки на значки системы в своем приложении. Примером может служить

@android:drawable/ic_menu_add

Это относится и к строкам и другим ресурсам, например, к тексту "ОК".

3

Лучше скопировать их в свой проект, так как системные значки не гарантируются в будущих сборках или сохраняют одно и то же имя. Копирование их в ваш проект дает вашему приложению последовательный внешний вид и внешний вид в сборках и дает вам душевное спокойствие, что ваши значки всегда будут работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню