Подтвердить что ты не робот

Как получить значения атрибутов темы

Можно ли получить значения стилизованных атрибутов из определенной темы без установки темы до приложения/активности? (Я имею в виду, прежде чем вызывать context.setTheme(..))

4b9b3361

Ответ 1

Например, чтобы получить значение атрибута editTextColor темы MyTheme:

TypedArray a = getTheme().obtainStyledAttributes(
        R.style.MyTheme,
        new int[] { R.attr.editTextColor });

// Get color hex code (eg, #fff)
int intColor = a.getColor(0 /* index */, 0 /* defaultVal */);
String hexColor = Integer.toHexString(intColor);

// Don't forget to recycle
a.recycle();

Ответ 2

JavaDoc:

метод TypedArrayandroid.content.res.Resources.Theme.obtainStyledAttributes(int[]ATTRS)

Верните a TypedArray, удерживая значения, определенные темой, которые перечисленные в attrs.

Обязательно вызовите TypedArray.recycle(), когда закончите с массивом.

Ответ 3

если вам нужно это в XML файле, вы можете использовать что-то вроде этого:

style="?android:attr/panelTextAppearance"

например:

<TextView
    style="?android:attr/panelTextAppearance"
    android:paddingTop="?android:attr/paddingTop"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/your_text"
    />

если вы используете eclipse, управляйте + щелчком по элементу, чтобы увидеть другие возможные значения (откроется файл attrs.xml).