更改NumberPicker TextSize

时间:2015-07-08 10:02:25

标签: android

如何设置数字选择器的中心选择值的文本大小?并且当滚动时,中心号码的大小应该大于其他号码。

我尝试使用以下代码:

public static boolean setNumberPickerTextColor(NumberPicker numberPicker, int color) {
        final int count = numberPicker.getChildCount();
        for (int i = 0; i < count; i++) {
            View child = numberPicker.getChildAt(i);
            if (child instanceof EditText) {
                try {
                    Field selectorWheelPaintField = numberPicker.getClass()
                            .getDeclaredField("mSelectorWheelPaint");
                    selectorWheelPaintField.setAccessible(true);
                    ((Paint) selectorWheelPaintField.get(numberPicker)).setColor(color);
                    ((EditText) child).setTextColor(color);
                    ((EditText) child).setTextSize(48);
                    numberPicker.invalidate();
                    return true;
                } catch (NoSuchFieldException | IllegalAccessException | IllegalArgumentException e) {
                    Log.w("setNumberPickerTextColor", e);
                }
            }
        }
        return false;
    }

但滚动后文字大小恢复正常

1 个答案:

答案 0 :(得分:0)

你可以使用XML和样式的力量来做到这一点。

首先在您的styles.xml

中添加以下内容
<style name="MyTheme.NumberPicker">
    <item name="android:textSize">11dp</item>
</style>

然后在NumberPicker中使用该样式,如下所示:

<android.widget.NumberPicker        
    ...
    android:theme="@style/MyTheme.NumberPicker"
    .../>

在API +17

上测试