У меня есть счетчик, который в эмуляторе светло-серый с черным текстом и на устройствах HTC. На Motorola Defy элемент управления темно-серый, а текст белый.
Как я могу получить цвет текста по умолчанию для текущего устройства?
У меня есть счетчик, который в эмуляторе светло-серый с черным текстом и на устройствах HTC. На Motorola Defy элемент управления темно-серый, а текст белый.
Как я могу получить цвет текста по умолчанию для текущего устройства?
Все настройки, сделанные переносчиками/производителями, находятся внутри:
android:colors
android:styles
android:themes
Если вы используете TextView
, вы можете проверить цвет текста по умолчанию, создав объект TextView
и вызвав getTextColors().
Другая возможность — проверить, как стили применяются к TextView
, и использовать метод getResource()
, чтобы получить точный цвет, который вы ищете.
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;
}
}