Как мне создать свои собственные имена ресурсов? - PullRequest
3 голосов
/ 15 февраля 2010

Могу ли я использовать собственные имена ресурсов в themes.xml? Например:

<item name="headerBackground">@drawable/header</item>

В этом примере headerBackground не является допустимым ресурсом (No resource found that matches the given name..., говорит Eclipse).

Где я должен создать / объявить эти ресурсы? Это плохая идея?

1 Ответ

3 голосов
/ 15 февраля 2010

Конечно, вы можете использовать свои собственные имена, в противном случае вы застряли бы с отрисовками по умолчанию для Android ..:)

Вы объявляете имена для рисования, помещая файл с этим именем в каталог res/drawable.


Обновлено, актуальный ответ:

Вам необходимо объявить настраиваемый атрибут в res/values/attrs.xml (фактическое имя файла не имеет значения, но, похоже, это соглашение):

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <declare-styleable name="MyCustomView">
    <attr name="headerBackground" format="reference" />
  </declare-styleable>
</resources>

Затем вы можете присвоить ему значение в вашей теме, например:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme" parent="android:Theme">
        <item name="headerBackground">@drawable/header</item>
    </style>
</resources>

Конечно, независимо от того, View что вы реализуете, чтобы использовать этот новый атрибут, он должен иметь возможность загрузить Drawable и применить его. Пример галереи на сайте разработчиков Android полезен там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...