2012-07-26 12 views
5

Estoy personalizando un botón en Android cambiando su fondo (usando un archivo png 9patch) y cambiando su tipo de fuente. Puse el botón en un RelativeLayout ya que necesito un posicionamiento y un dimensionamiento precisos de este elemento en un diseño personalizado. Estoy haciendo todo esto programáticamente (desde la creación hasta la configuración y visualización).¿Cómo se puede evitar que el texto se corte en un botón?

Encontré this question con el mismo problema, pero la solución no funcionará para mí. Usé

continueBtn.setPadding(0,0,0,0); 

pero la salida gráfica sigue siendo la misma. Más de la mitad del texto está cortado en la vista.

Un extracto del código que estoy usando es el siguiente:

Button continueBtn = new Button(getContext()); 
p = new RelativeLayout.LayoutParams(width, 45); 
p.addRule(CENTER_HORIZONTAL); 

continueBtn.setLayoutParams(p); 
continueBtn.setTypeface(...); 
continueBtn.setTextSize(14); 
outerLayout.addView(continueBtn); 
continueBtn.setPadding(0, 0, 0, 0); 

No importa donde pongo la llamada setPadding método, las cosas no van a cambiar. ¿Qué estoy haciendo mal? ¿Algunas ideas?

+0

¿Probablemente quiera agregar relleno a sus LayoutParams antes de configurarlos para el botón? ¿Por qué la solución de relleno "no funcionará para [usted]"? – matt5784

+0

¿Usaste .setPadding con solo 0 valor? ¿Has intentado rellenar sin RelativeLayout? – Ali

+0

@ matt5784 No puedo agregar relleno a 'RelativeLayout.LayoutParams', ya que no puedo ver ninguna API adecuada. @ Ali usé '.setPadding' con un par de valores diferentes, pero nada cambió. – marzapower

Respuesta

0

Está estableciendo una altura constante para el botón de 45 (píxeles, supongo). Sin embargo, aparentemente el texto que intentas poner es más alto que la cantidad de espacio que android te permitirá usar. Haga que su botón sea más alto (cambiando los parámetros de diseño) y se ajustará sin cortar. De forma alternativa, use un tamaño de texto más pequeño para que el texto sea más corto y se ajuste.

+0

Esto es exactamente lo que no puedo hacer. Por cierto, hay mucho espacio en el área ocupada por el botón para mostrar completamente el texto, pero aparentemente no se muestra correctamente. – marzapower

+0

Publica una captura de pantalla, por favor. – matt5784

+0

P.S. si su diseño es precisamente calibrado, y está usando píxeles (en lugar de dp), solo funcionará en la resolución de una pantalla que está probando ... por lo que su diseño no será perfecto de todos modos (excepto en su dispositivo) . – matt5784

Cuestiones relacionadas