更改NumberPicker文本大小

3

如何设置数字选择器(Number Picker)中心选定值的文本大小?并且当滚动时,中心数字的大小应该比其他数字更大。

我尝试使用以下代码:

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
在提问之前,请查看http://stackoverflow.com/help/how-to-ask。 - Altay Mazlum
抱歉,那是我的第一次。下次我会注意的。 - Ankur
@Ankur 我有同样的需求。有没有办法改变所选文本的字体大小? - Sahana Prabhakar
@SahanaPrabhakar 我没有找到任何东西。 - Ankur
@Ankur - 你可以尝试这个 https://github.com/SingleCycleKing/CustomTimePicker - Sahana Prabhakar
1个回答

1
你可以使用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上进行了测试


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接