Я хочу использовать компонентный виджет NumberPicker, но вместо этого в теме по умолчанию Holo мне нужно заменить синий цвет оранжевым цветом, поскольку это цвет по умолчанию в моем стиле. Как заменить синий цвет и цвет номеров и сохранить все функциональные возможности компонента? спасибо
Как изменить стиль выбора номера в андроиде?
Ответ 1
Сделайте копию библиотеки /res/drawable - */numberpicker_selection_divider.9.png и укажите имя, например custom_np_sd.9.png.
Переопределить стиль NumberPicker по умолчанию с помощью темы активности:
<style name="AppTheme" parent="@style/Holo.Theme">
<item name="numberPickerStyle">@style/CustomNPStyle</item>
</style>
<style name="CustomNPStyle" parent="@style/Holo.NumberPicker">
<item name="selectionDivider">@drawable/custom_np_sd</item>
</style>
И примените @style/AppTheme как тему активности.
Ответ 2
К сожалению, вы не можете его стилизовать. Атрибуты стилей и стилей для NumberPicker
отсутствуют в общедоступном API, поэтому вы не можете установить их и изменить внешний вид по умолчанию. Вы можете выбирать только светлую и темную тему.
В качестве решения я бы предложил вместо этого использовать android-numberpicker. Библиотека - это, в основном, порт NumberPicker, извлеченный из исходных кодов Android. Но это лучше, чем это, он также поддерживает NumberPicker
для Android 2.x. Библиотека может быть легко оформлена.
Чтобы стиль делителя изменил стиль NPWidget.Holo.NumberPicker
и его атрибуты selectionDivider
и selectionDividerHeight
.
Для стиля текста отрегулируйте стиль NPWidget.Holo.EditText.NumberPickerInputText
.
Ответ 3
<NumberPicker
android:id="@+id/np"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:background="@drawable/drawablenp"
android:layout_centerVertical="true"></NumberPicker>