Как получить цвета устройства?

У меня есть счетчик, который в эмуляторе светло-серый с черным текстом и на устройствах HTC. На Motorola Defy элемент управления темно-серый, а текст белый.

Как я могу получить цвет текста по умолчанию для текущего устройства?


person rekire    schedule 17.11.2011    source источник
comment
какое устройство ты используешь..   -  person NikhilReddy    schedule 17.11.2011
comment
HTC Desire HD и Motorola Defy   -  person rekire    schedule 17.11.2011
comment
На что я могу сказать, я также столкнулся с той же проблемой для устройств Motorola Droid, для которых цвет устройства белый.. нам нужно установить цвет текста..   -  person NikhilReddy    schedule 17.11.2011


Ответы (2)


Все настройки, сделанные переносчиками/производителями, находятся внутри:

  • android:colors
  • android:styles
  • android:themes

Если вы используете TextView, вы можете проверить цвет текста по умолчанию, создав объект TextView и вызвав getTextColors().

Другая возможность — проверить, как стили применяются к TextView, и использовать метод getResource(), чтобы получить точный цвет, который вы ищете.

person Macarse    schedule 17.11.2011
comment
Я не могу определить правильную переменную в android.R.color для цвета текста счетчика. - person rekire; 17.11.2011
comment
@rekire: вам нужно взглянуть на Spinner стили. Вы можете прочитать их в папке SDK внутри /platforms/android-X/data/res/values/styles.xml - person Macarse; 17.11.2011

Ответ Макарса идет в правильном направлении, но я использую другой путь.

Я просмотрел файлы /platforms/android-X/data/res/values xml и нашел цвет background_dark, который мне подходит.

Наконец, я использую этот код:

public class MyAdapter extends ArrayAdapter<SpinnerItem> {
    // ...

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        View v = super.getDropDownView(position, convertView, parent);
        TextView tv=(TextView)v.findViewById(android.R.id.text1);
        tv.setTextColor(Resources.getSystem().getColor(android.R.color.background_dark));
        return v;
    }
}
person rekire    schedule 21.11.2011