establecer texto de vista alinear en el centro en spinner en Android

Actualizar

El enlace de pregunta mencionado ya no existe. Pero debido a la gran cantidad de votos y la ayuda para el futuro, el enlace no debe eliminarse.

El título de la pregunta vinculada fue:

view-text-in-the-center-of-the-spinner-when-select-from-the-drop-down-list

Original

posible duplicado con https://stackoverflow.com/q/4545559/760489

Quiero alinear el texto de visualización de la ruleta al centro. Lo busqué en google pero no encontré nada, ¿alguien sabe sobre esto? cualquier ayuda o sugerencia son apreciadas

Gracias

Crea un adaptador para tu spinner así,

ArrayAdapter adapter = new ArrayAdapter(context, R.layout.my_spinner_style,array_of_values) { public View getView(int position, View convertView,ViewGroup parent) { View v = super.getView(position, convertView, parent); ((TextView) v).setTextSize(16); return v; } public View getDropDownView(int position, View convertView,ViewGroup parent) { View v = super.getDropDownView(position, convertView,parent); ((TextView) v).setGravity(Gravity.CENTER); return v; } }; 

Ahora su diseño R.layout.my_spinner_style ,

   

Ahora configura este adaptador a tu spinner,

 spinner.setAdapter(adapter); 

Debes establecer tu propio diseño para el ítem giratorio.

 SpinnerAdapter adap = new ArrayAdapter(this, R.layout.spinner_item, new String[]{"A", "B", "C"}); spriner.setAdapter(adap); 

Donde R.layout.spinner_item es un diseño con contenido:

   

Esto es muy simple, solo crea un archivo xml llamado spinner_item.xml con contenido como

  

Ahora en tu clase java , a pesar de agregar el recurso de vista predeterminado de android agrega tu recurso de vista personalizado como

 ArrayAdapter adapter= new ArrayAdapter(context, R.layout.spinner_item, myList); adapter.setDropDownViewResource(R.layout.spinner_item); 

La línea textAlignment hará el truco.

Esto funciona sin cambios de diseño

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView adapterView, View view, int i, long l) { ((TextView) adapterView.getChildAt(0)).setGravity(Gravity.CENTER); } }); 

Tarde en el juego, pero quería agregar esto para futuros usuarios solo porque encontré una solución simple para mi problema. Me permitió centrar texto simple sin crear un diseño personalizado. La forma en que lo hice fue usando padding

  

Tuve éxito en centrar mi texto dentro de mi spinner usando este método. Es probable que esto solo funcione para casos simples, pero de todos modos probablemente desee utilizar un diseño personalizado para casos más complejos. Esto es solo para mantener sus archivos xml presionados y evitar tener que usar un diseño personalizado solo para centrar un girador simple.

Establecer textAlignment para centrar colocará el texto en el centro.

android: textAlignment = “center”

   

Déjame completar la respuesta. También es importante hacer espacio en Spinner.

Incorrecto:

  

Derecha: