如何在datepicker中更改文本大小?

时间:2012-07-30 18:49:15

标签: android android-layout android-widget android-datepicker

datepicker中的默认文本大小对我的应用来说太大了。我已经看到了一种建议改变它的方法here,但是为了嵌套在datepicker类中的文本视图而钓鱼似乎很笨拙且容易出错。

有更好/更清洁的方法吗?

7 个答案:

答案 0 :(得分:6)

更改datepicker / timepicker / numberpicker字体大小的最简单方法是自定义主题。

在样式文件中,按以下方式设置默认字体大小。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:textSize">22sp</item>
</style> 

答案 1 :(得分:4)

将主题设置为DatePicker布局并向其添加android:textSize对我有用。

在你的布局的xml中添加DatePicker应用主题,如下所示 -

<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
            android:theme="@style/NumberPickerStyle"
            android:datePickerMode="spinner"
            android:calendarViewShown="false"
            android:layout_gravity="center_horizontal"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"/>

然后在NumberPickerStyle中定义styles.xml,指定android:textSize,就像这样 -

<style name="NumberPickerStyle">
        <item name="android:textSize">@dimen/number_picker_text_size</item>
</style>

答案 2 :(得分:1)

使用以下代码:

ViewGroup childpicker = (ViewGroup)datePicker.findViewById(Resources.getSystem().getIdentifier("month", "id", "android"));

EditText mornthEt = (EditText)childpicker.getChildAt(1);// month widget

//change textsize and textcolor for mornthEt

mornthEt.setTextSize(30);

mornthEt.setTextColor(Color.GREEN);

答案 3 :(得分:1)

Sean的方法在选择器本身的UI中出现了一些问题,以防有多个选择器,我认为将文本大小应用于选择器下的所有组件并不完美。 以下是我使用的内容,它完美无任何UI故障。

<style name="PickerTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:editTextStyle">@style/PickerEditText</item>
</style>

<style name="PickerEditText" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:textSize">24sp</item>
</style>

答案 4 :(得分:0)

使用下面的代码

 DatePicker picker = (DatePicker)findViewById(R.id.dp_date);
    ViewGroup childpicker

     = (ViewGroup)
    findViewById(Resources.getSystem().getIdentifier("month" /*rest is:
    day, year*/, "id", "android"));

    EditText textview = (EditText)
    picker.findViewById(Resources.getSystem().getIdentifier("timepicker_input",
    "id", "android"));
    textview.setTextSize(30);
    textview.setTextColor(Color.GREEN);

答案 5 :(得分:0)

我使用了以下CustomDateAndTimePicker。这很容易定制。在日期,月份,年份,小时和分钟等不同的选项中有自己的数字选择器。因此,您也可以自定义文本大小,颜色和其他样式。您可以添加自己的号码选择器以供自定义使用

答案 6 :(得分:0)

肖恩的代码有效。但它也改变了所有其他组件的字体大小(textViews,按钮等......)所以这是解决方案。

为时间选择器创建不同的样式,并在时间选择器主题上使用它。

<style name="my_time_picker_style">
    <item name="android:textSize">24sp</item>
</style>

并在您的时间选择器上使用它

android:theme="@style/my_time_picker_style"

观看视频,我是怎么做的https://youtu.be/JMJ2ujhk9c0