#android #drawable
#Android #можно рисовать
Вопрос:
Можно ли как-то создать псевдоним для значка mipmap? Например, у нас есть значок с именем icon_app, но в нашей библиотеке мы используем ic_launcher (как и должно быть). Итак, для чертежей вы можете создавать ссылки с values/drawables.xml
Я попробовал следующий подход:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item name="ic_launcher" type="mipmap">@mipmap/icon_app</item>
</resources>
но, похоже, он не работает, я попытался назвать его как drawables.xml и mipmaps.xml , кажется, он всегда пытается ссылаться на него из drawable вместо папки mipmap?
Комментарии:
1. «как и должно быть» … Почему? Почему бы просто не изменить имя в манифесте, чтобы оно соответствовало
icon_app
?2. Потому что я ссылаюсь на него из кода и ожидаю, что он будет следовать рекомендациям по дизайну материалов.
3. В руководстве по дизайну материалов указано, как называть ваши ресурсы? Я этого раньше не видел.
4. Несмотря на то, что я опубликовал решение ниже, я надеюсь, что награда получит еще несколько взглядов на это, если есть другие факторы, которые я не определил.
Ответ №1:
Дальнейшие попытки показывают, что первоначально опубликованный код отлично работает при компиляции на устройство, но просто не распознается Android Studio.
Я надеялся использовать псевдоним значка запуска системы по умолчанию, и это, похоже, работает:
<resources>
<item name="test_alias" type="mipmap">@android:mipmap/sym_def_app_icon</item>
</resources>
… как и эти:
<resources>
<mipmap name="test_alias">@android:mipmap/sym_def_app_icon</mipmap>
<mipmap name="test_alias2">@mipmap/ic_test</mipmap>
</resources>
… где ic_test
находится «обычная» mipmap в моей res/mipmap
папке ресурсов.
Чтобы объяснить вариант использования в моей ситуации, приведенный выше код находится в проекте библиотеки. test_alias
mipmap объявлен в библиотеке, чтобы я мог использовать его для создания Notification
.
Но предполагается, что разработчик, использующий библиотеку, сможет переопределить этот значок своим собственным лаунчером или другим значком по своему выбору, добавив что-то подобное в свой собственный код, переопределяя определение библиотеки:
<resources>
<mipmap name="test_alias">@mipmap/ic_launcher</mipmap>
</resources>