Псевдоним для значка запуска mipmap

#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>