versiones sandwich nougat lollipop jelly honeycomb froyo descargar cream caracteristicas bean android android-3.0-honeycomb

android - nougat - ice cream sandwich



Android: ¿puedo aumentar el tamaño del texto para el widget NumberPicker? (8)

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 excelentes, pero en su lugar opté por la siguiente solución, que satisfizo mis necesidades:

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

Esto esencialmente ampliando todo el Widget.

Obtuvimos un widget NumberPicker en 3.0, pero parece que el TextSize para este widget no se puede modificar. ¿Me 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.


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

nota: la solución de aheuermann es segura contra las posibles diferencias de implementación en el NumberPicker del NumberPicker en diferentes versiones de Android (es decir, es posible que TextView no esté siempre en la posición infantil 1).

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


Nos encontramos con el mismo problema y terminamos recreando NumberPicker localmente. Hay un tutorial más profundo here .


Para su información, si usa la solución de aheuermann (como lo hice yo) y también desea implementar un escucha en el selector de números, el método onValueChanged tendrá que tener este aspecto. Pensé en compartir esto, ya que me tomó un poco de tiempo resolverlo.

public void onValueChange(android.widget.NumberPicker picker, int oldVal, int newVal){ //your awesome methods to perform on value changed }


Podemos personalizar las 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>


Pude lograr esto extendiendo el NumberPicker predeterminado. 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")); } } }

Luego simplemente haga referencia a esta clase en su diseño xml.

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


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

La solución con la que voy tiene la desventaja de que debe crearse una instancia programática, en lugar de a través del diseño, pero de lo contrario, parece funcionar como se esperaba. 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);

asumiendo que se está haciendo dentro de una actividad. Si no, reemplaza "esto" con cualquier Contexto que tengas disponible. Este código hace el equivalente a configurar un tema que anula todos los tamaños de TextView dentro de su actividad, pero solo lo aplica al NumberPicker y sus hijos.


solo configura este estilo para tu 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: