2017-01-03 6 views
1

Я знаю, что вы можете ссылаться на значок сспособов ссылаться на значок в Android App

<item android:id="@+id/config" 
    android:icon="@drawable/ic_config" 
    android:title="@string/config" 
    app:showAsAction="ifRoom"/> 

Так что это идет в вытяжке папку и просматривает ic_config изображение.
Но в последнее время я увидел это:

android:id="@+id/config" 
    android:icon="?iconConfig" 
    android:title="@string/config" 
    app:showAsAction="ifRoom"/> 

Теперь я не понимаю, как отображение между моей конфигурацией образом и ?iconConfig работает, я могу видеть, что «iconConfig» появляется в R.java и attr.xml, но нигде больше.
Может ли кто-нибудь объяснить?

+1

Это может помочь вам http://stackoverflow.com/questions/21039310/difference-between-androidicon-drawable-my-icon-and-androidicon-my-icon – Lino

ответ

0

Пожалуйста, перейдите по следующей ссылке:

http://www.linuxtopia.org/online_books/android/devguide/guide/topics/ui/themes.html

Edit

для вашего удобства я отправляю необходимую часть из ссылки, указанной выше:

Так же, как стили , темы также объявляются в элементах XML, и ссылаются таким же образом , Разница заключается в том, что вы добавляете тему всему приложению или деятельности через и элементы в Android Manifest - темы не могут быть применяются к отдельным представлениям.

Вот пример декларирование темы:

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomTheme">   
    <item name="android:windowNoTitle">true</item> 
    <item name="windowFrame">@drawable/screen_frame</item> 
    <item name="windowBackground">@drawable/screen_background_white</item> 
    <item name="panelForegroundColor">#FF000000</item> 
    <item name="panelBackgroundColor">#FFFFFFFF</item> 
    <item name="panelTextColor">?panelForegroundColor</item> 
    <item name="panelTextSize">14</item> 
    <item name="menuItemTextColor">?panelTextColor</item> 
    <item name="menuItemTextSize">?panelTextSize</item> </style> </resources> 

Обратите внимание на использование на-символ (@) и вопросительный знак в справочных ресурсов (?). Символ at указывает, что мы ссылаемся на ресурс , ранее определенный в другом месте (который может быть из этого проекта или из платформы Android). Вопросительный знак указывает, что мы находимся в , ссылаясь на значение ресурса в текущей загруженной теме. Это , сделанное путем указания конкретного значения по его имени. (Например, panelTextColor использует тот же цвет, назначенный для панелиForegroundColor, , определенный заранее.) Этот метод может использоваться только в XML-ресурсах.

+0

я вижу, но все-таки в какой файл он указал, что если я ссылаюсь на iconConfig, он принимает изображение ic_config? Я пока не понимаю карты. – user2870415

+0

@ user2870415 plz проверить мое редактирование ... надеюсь, что это поможет вам сейчас. Благодарю. –

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^