首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变更NumberPicker TextSize

变更NumberPicker TextSize
EN

Stack Overflow用户
提问于 2015-07-08 10:02:25
回答 1查看 3.5K关注 0票数 3

如何设置数字选择器的中心选定值的文本大小?而且当滚动时,中心数的大小应该比其他的要大。

我尝试使用以下代码:

代码语言:javascript
复制
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;
    }

但滚动后,文本大小将恢复正常。

EN

回答 1

Stack Overflow用户

发布于 2018-05-23 05:12:12

您可以使用XML和样式的强大功能来实现这一点。

首先将以下内容添加到styles.xml

代码语言:javascript
复制
<style name="MyTheme.NumberPicker">
    <item name="android:textSize">11dp</item>
</style>

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

代码语言:javascript
复制
<android.widget.NumberPicker        
    ...
    android:theme="@style/MyTheme.NumberPicker"
    .../>

在API +17上测试

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31289380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档