Полезные системные ресурсы Android
Android поставляется с большим количеством системных ресурсов (android.R
), которые могут быть использованы для экономии времени и облегчения вашего приложения.
Например, недавно я обнаружил, что Android предлагает локализованные строки для Yes (android.R.string.yes
), No (android.R.string.no
), Cancel (android.R.string.cancel
) и Ok (android.R.string.ok
) среди других строк.
Какие другие системные ресурсы вы рекомендуете использовать? Или есть причина, чтобы избежать использования системных ресурсов?
Изменить: Как отметил Томас, некоторые из этих ресурсов могут не дать ожидаемых результатов (в частности, android.R.string.yes/no
возвращает OK/Cancel
вместо Yes/No
, как сообщалось здесь). Для большего контроля вы можете скопировать системные ресурсы из исходного кода Android.
Ответы
Ответ 1
Вы можете найти полный список всех системных ресурсов в пакете android .
Каждый раз, когда я хочу что-то сделать на Android, я проверяю, есть ли системный ресурс, который охватывает то, что я хочу делать. Полезно импортировать исходный код Android (в частности, их /res/folder) при поиске уже реализованных ресурсов, которые вы, возможно, захотите, поэтому вы можете увидеть их конкретную реализацию.
Лично я чаще всего использую:
- Встроенные макеты Android для стандартных задач, таких как раскрывающиеся выпадающие списки.
- Идентификаторы Android (
android.R.id
), потому что вам часто требуется использовать их, если вы хотите использовать некоторые виджеты Android (например, TabHost/TabWidget
требуется использовать "android:id/tabhost
", "android:id/tabs
", и "android:id/tabcontent
", если вы хотите реализовать XML-макет).
- Встроенные цвета, особенно
android.R.color.transparent
.
- Встроенная анимация Fade-in и fade-out для Android в
android.R.anim
.
Ответ 2
Вы можете получить доступ к системным ресурсам из xml, присвоив их имени пакета Android, т.е. "@android:string/ok"
Ответ 3
Как упоминалось в CommonsWare, вам не нужно загружать исходный репозиторий Android для проверки ресурсов; просто перейдите к <android-sdk-dir>/platforms/android-X.X/data/res/
. Однако, если вы начнете использовать их, вы быстро разочаруетесь, обнаружив, что большинство из них недоступны в классе android.R
. В большинстве случаев мне приходится импортировать их в рабочее пространство Eclipse.: - (
Мои любимые ресурсы - это чертежи, которые отображаются по-разному на основе сфокусированных/нажатых/отключенных состояний (например, android.R.drawable.btn_default). Я использую их или настраиваю их для создания пользовательских кнопок для своих приложений. Как вы можете видеть, если вы смотрите на /data/res/drawable/btn_default.xml
, они определяются как XML-элемент <selector>
, который накачивается во время выполнения StateListDrawable
во время выполнения. Вы также можете создать свой собственный StateListDrawables, и они очень полезны, как в виде фоновых изображений, так и в виде кнопки "составной доступный" (см. TextView.setCompoundDrawables()
).
Ответ 4
Обратите внимание, что переводы действительно плохие.
Например, немецкий "нет" в android-25 "Abbrechen", что на самом деле означает "отменить". "Да" переводится как "ОК"...
Я не уверен, насколько хороши другие языки, поэтому я бы использовал собственный перевод.