Не можете использовать рисовалку для Android? - PullRequest
5 голосов
/ 20 августа 2011

Я пытаюсь использовать один из инструментов рисования блесны для Android (spinner_black_16, spinner_black_20, spinner_black_48 или spinner_black_76), как показано на этой странице . Мой проект использует SDK 2.1, поэтому я обновил его до 2.2, так как на этой странице указаны версии SDK, в которые они включены. К сожалению, ни один из android.R.drawable.spinner_black_xx не определен.

Эти чертежи недоступны для использования разработчиком? Единственный способ, которым я могу получить к ним доступ, заключается в следующем сложном методе:

final Drawable spinner = new ProgressBar(context).getIndeterminateDrawable();

К сожалению, это обеспечивает меня белым блесном, а не черным.

1 Ответ

1 голос
/ 07 ноября 2013

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

Drawables находятся в $ANDROID_SDK_DIR/platforms/android-*/data/res/drawable-*/. Вы можете скачать и выбрать версию ОС, из которой вы хотели бы вытащить чертежи. API уровня 7 / ОС версии 2.1 имеет полный комплект:

platforms/android-7/data/res/drawable-mdpi/spinner_black_16.png
platforms/android-7/data/res/drawable-mdpi/spinner_black_20.png
platforms/android-7/data/res/drawable-mdpi/spinner_black_48.png
platforms/android-7/data/res/drawable-mdpi/spinner_black_76.png
platforms/android-7/data/res/drawable-hdpi/spinner_black_16.png
platforms/android-7/data/res/drawable-hdpi/spinner_black_20.png
platforms/android-7/data/res/drawable-hdpi/spinner_black_48.png
platforms/android-7/data/res/drawable-hdpi/spinner_black_76.png

Несмотря на то, что в настоящее время это не так, официальные «Руководства по дизайну значков» для Android использовали для явного разрешения этой ситуации и рекомендуют копировать:

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

...