Intereting Posts
Исключение NullPointer в файле android.support.v4.app.FragmentManagerImpl.makeInactive КоординаторLayout игнорирует поля для просмотров с привязкой Лучший способ обработки событий в Android Каков максимальный размер базы данных SQLite на Android? Как установить кнопку переключателя Lollipop Не удалось выполнить компиляцию AAPT2: неверный размер на Android 3.0 Canary 1 Анализ данных для Android L не поддерживается. Поддерживается версия major.minor 51.0 Как установить GridView внутри ScrollView Как отключить onItemSelectedListener для вызова при настройке выбранного элемента по коду Как поместить файл «-» в файл string.xml SQLite Query в Android для подсчета строк Пользовательская панель быстрого поиска Listview в Android Предупреждение Android Proguard: невозможно записать ресурс (запись в дубликат zip) Как я могу проверить / обновить версию Proguard, используя ее в разработке Eclipse для Android? Белая граница вместе с прозрачностью в «LinearLayout»

Как использовать графические элементы по умолчанию для Android

Каков наилучший подход при использовании графических адаптеров по умолчанию для Android? Должен ли я использовать android.R.drawable или мне нужно копировать чертежи в моем проекте и использовать R.drawable ?

Есть ли риск, что в более новой версии Android некоторые из чертежей по умолчанию удаляются или изменяются? Или, скажем, негативно повлиять на внешний вид моего приложения? Кроме того, какая из чертежей в исходном коде Android считается «стабильной» и на нее следует положиться?

Я бы предпочел не копировать чертежи, потому что я думаю, что внешний вид приложения должен соответствовать используемой версии Android. Так, например, для версии 1.6 он должен использовать растровые изображения Android по умолчанию для версии 1.6.

Solutions Collecting From Web of "Как использовать графические элементы по умолчанию для Android"

Если вы прочитаете какие-либо обсуждения в группе разработчиков Android, вы увидите, что они препятствуют использованию чего-либо, чего нет в публичном SDK, потому что остальное подвержено значительным изменениям.

Пример использования Java: myMenuItem.setIcon(android.R.drawable.ic_menu_save);

Пример использования ресурсов: android:icon="@android:drawable/ic_menu_save"

Насколько я помню, в документации рекомендуется не использовать значки меню из android.R.drawable напрямую и рекомендует скопировать их в папку с вашими возможностями. Основная причина заключается в том, что эти значки и имена могут быть изменены и могут быть недоступны в будущих выпусках.

Предупреждение. Поскольку эти ресурсы могут меняться между версиями платформы, вы не должны ссылаться на эти значки с помощью идентификаторов ресурсов платформы Android (например, иконки меню под android.R.drawable). Если вы хотите использовать любые значки или другие внутренние ресурсы, вы должны хранить локальную копию этих значков или чертежей в ресурсах приложений, а затем ссылаться на местную копию из вашего кода приложения. Таким образом, вы можете контролировать внешний вид ваших значков, даже если изменяется копия системы.

От: http://developer.android.com/guide/practices/ui_guidelines/icon_design_menu.html

Лучше скопируйте и переместите их на свои собственные ресурсы. Некоторые ресурсы могут быть недоступны в предыдущих версиях Android. Вот ссылка со всеми доступными для каждой версии Android версиями благодаря @fiXedd

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

 import android.R; 

Но я сделаю, что ваши собственные ресурсы будут иметь ошибку, если вы хотите ее использовать. Ошибка будет выглядеть примерно так:

R. не может быть разрешено

Поэтому я предпочитаю не import android.R а import *my.own.package*.R;

Тогда, когда я могу нормально использовать свой собственный ресурс с R.drawable.*something* без ошибок и поставить android.R.*something_default* чтобы использовать ресурсы по умолчанию для Android.

Лучше использовать android.R.drawable, потому что он общедоступен и документирован.