2013-02-22 67 views
11

我想使用NumberPicker组件,但是在默认的Holo主题中,我需要用橙色替换蓝色,因为这是我的样式中的默认颜色。 如何替换蓝色和数字的颜色,并保留组件的所有功能? the default number picker in Holo 谢谢如何更改android中的数字选择器样式?

+1

为什么谷歌不允许造型NumberPicker – 2014-11-25 10:14:01

回答

0

制作库/ 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> 

并申请@风格/ AppTheme为活动主题。

+3

在哪里可以找到库文件夹以复制样式 – user1796624 2013-02-25 09:26:51

+6

不能正常工作 错误:检索父项的错误:找不到与给定名称匹配的资源'@android:风格/ Widget.Holo.NumberPicker”。 错误:找不到与给定名称相匹配的资源:attr'android:selectionDivider'。 – 2014-05-03 20:51:15

+0

我同意上面的评论。找不到资源。如何使用它? – maXp 2017-10-19 00:40:58

23

不幸的是,你不能设计它。公共API中不存在NumberPicker的样式和样式属性,因此您无法设置它们并更改默认外观。您只能选择明亮和黑暗的主题。

作为解决方案,我建议使用android-numberpicker库。该库基本上是从Android源代码中提取的NumberPicker端口。但它比这更好,它也支持到Android 2.x的NumberPicker。图书馆可以很容易地风格。

风格的分配器调整NPWidget.Holo.NumberPicker风格及其selectionDividerselectionDividerHeight属性。
风格文本调整NPWidget.Holo.EditText.NumberPickerInputText风格。

+0

但通过使用库,你建议的组件的滚动功能丢失,我会真的很想保持这个功能 – user1796624 2013-02-25 09:30:08

+0

库版本也可以滚动。这没有问题。 – Tomik 2013-02-25 09:37:08

+1

无论我选择什么样式,我*总是*得到黑色文本。 – 2014-04-28 05:35:35

7

enter image description here

<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>

Create a background in drawable folder

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <gradient 
     android:startColor="#707070" 
     android:centerColor="#f8f8f8" 
     android:endColor="#707070" 
     android:angle="270"/> 
</shape>