Android: ¿puedo aumentar el textSize para el widget NumberPicker?

Tenemos un widget NumberPicker en 3.0, pero parece que el textSize para este widget no puede ser modificado. ¿Estoy perdiendo algo o es este el caso? Realmente me gustaría aumentar el tamaño de la fuente, es bastante pequeño con el valor predeterminado. Pero no puedo ver una propiedad textSize para ello.

Nos encontramos con el mismo problema y terminamos recreando NumberPicker localmente. Hay un tutorial más en profundidad aquí .

Yo era capaz de lograr esto mediante la ampliación de la predeterminada NumberPicker. no es ideal, pero funciona.

public class NumberPicker extends android.widget.NumberPicker { public NumberPicker(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void addView(View child) { super.addView(child); updateView(child); } @Override public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) { super.addView(child, index, params); updateView(child); } @Override public void addView(View child, android.view.ViewGroup.LayoutParams params) { super.addView(child, params); updateView(child); } private void updateView(View view) { if(view instanceof EditText){ ((EditText) view).setTextSize(25); ((EditText) view).setTextColor(Color.parseColor("#333333")); } } } 

A continuación, solo haga referencia a esta clase en su layout xml.

 <com.yourpackage.NumberPicker android:id="@+id/number_picker" android:layout_width="43dp" android:layout_height="wrap_content" /> 

Lo siguiente funcionó para mí (en API 15 / 4.0.3)

Nota: la solución de aheuermann es segura contra posibles diferencias de implementación en el NumberPicker de NumberPicker través de diferentes versiones de Android (es decir, el TextView puede no estar siempre en la posición de niño 1).

 TextView tv1 = (TextView)_numberPicker.getChildAt(1); tv1.TextSize = 10; 

Yo estaba enfrentando el mismo problema, quería aumentar el tamaño del texto del NumberPicker pero no podía encontrar una manera de hacerlo como parte del Widget. Todas las respuestas anteriores son grandes, pero en su lugar me fui con la siguiente solución, que cumplió con mis necesidades:

 <NumberPicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleX="1.5" android:scaleY="1.5"/> 

Esto amplía esencialmente todo el Widget.

Saltando a API 23, la solución presentada por aheuermann parece tener problemas. En el origen de NumberPicker, el tamaño de texto se establece basado en el niño EditText en la inicialización. Si intenta cambiarlo más tarde, el campo EditarTexto será grande, pero todos los demás números dibujados directamente por el widget seguirán siendo pequeños.

La solución que voy con tiene la desventaja de que debe ser instanciada mediante programación, en lugar de a través de diseño, pero de lo contrario, parece funcionar como se pretende. Primero, agregue lo siguiente a su archivo styles.xml:

 <style name="NumberPickerText"> <item name="android:textSize">40dp</item> </style> 

A continuación, puede instanciar el NumberPicker con

  ContextThemeWrapper cw = new ContextThemeWrapper(this, R.style.NumberPickerText); NumberPicker np = new NumberPicker(cw); 

Suponiendo que se está realizando dentro de una Actividad. Si no es así, reemplace el "este" con cualquier Contexto que tenga disponible. Este código equivale a establecer un tema que reemplaza todos los tamaños TextView dentro de su actividad, pero sólo se aplica a NumberPicker ya sus hijos.

Sólo establece este sytle para su NumberPicker:

  <style name="AppTheme.Picker" parent="Theme.AppCompat.Light.NoActionBar" > <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textSize">20dp</item> </style> <NumberPicker android:theme="@style/AppTheme.Picker" android:id="@+id/yearNumberPicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

Y <item name="android:textColorPrimary">@android:color/white</item> cambiar textcolor: Introduzca aquí la descripción de la imagen

Podemos personalizar vistas dentro de NumberPicker.
Tiene tres vistas:
2 ImageButttons y 1 EditText.

  if(numberPicker.getChildAt(1) instanceOf EditText) { EditText edt=(EditText)numberPicker.getChildAt(1); //do customizations here } 

Diseño completo de NumberPicker desde el código fuente de Android

 <?xml version="1.0" encoding="utf-8"?> <!-- ** ** Copyright 2008, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageButton android:id="@+id/increment" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/numberpicker_up_btn" android:paddingTop="22dip" android:paddingBottom="22dip" android:contentDescription="@string/number_picker_increment_button" /> <EditText android:id="@+id/numberpicker_input" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.Large.Inverse.NumberPickerInputText" android:gravity="center" android:singleLine="true" android:background="@drawable/numberpicker_input" /> <ImageButton android:id="@+id/decrement" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/numberpicker_down_btn" android:paddingTop="22dip" android:paddingBottom="22dip" android:contentDescription="@string/number_picker_decrement_button" /> </merge> 
  • OnClickListener se dispara después de onLongClickListener
  • Barra de acciones de Android: pestañas personalizadas y desbordamiento
  • La animación de transición de fragmentos personalizada no se reproduce correctamente cuando hago estallar el BackStack
  • quitar y agregar NPE de vista, nido de abeja, android
  • Cómo cerrar un menú ActionMode mediante programación en Honeycomb?
  • ¿Cómo puedo obtener el ancho y la altura de la pantalla del sistema Android Honeycomb?
  • Fragmentos de DIferencia para diferentes orientaciones
  • ¿Cuál es la "mejor práctica" para cambiar de "Actividades" a "Fragmentos" para aplicaciones de Android?
  • Cambiar el tema según la versión de Android
  • Fragmento de carga de hiladora / diálogo en Honeycomb
  • Habilitar la aceleración de hardware en la aplicación para Android, dirigida a Honeycomb AND versiones anteriores
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.