Bueno el dia de ahora, voy a comenzar los tutoriales de Android, pero no con el famoso " Hello World", si se pregunta por que, es porque quiero resolver dudas de mi canal de youtube, y hace unas horas alguien me preguntaba lo siguiente:
"hola, gracias por los videos, yo quisiera q al desplegar un spinner y seleccionar algun item del spinner, me desplegara una imagen. sabes como podria hacerlos?"
Entonces como respuesta a esa duda dejo este tutorial, comencemos de una vez.
Si quieren bajar el código se los dejo aqui
"hola, gracias por los videos, yo quisiera q al desplegar un spinner y seleccionar algun item del spinner, me desplegara una imagen. sabes como podria hacerlos?"
Entonces como respuesta a esa duda dejo este tutorial, comencemos de una vez.
- Creamos un archivo llamado array_anime.xml en la carpeta res/values, dando clic derecho en values y agregando un android xml file, le damos un nombre (el array_anime sin .xml)
- Luego añadimos el sigueinte codigo al archivo recien creado
- Ahora abrimos en layout de nuestra app (res/layout/main.xml) y añadimos un spinner, le cambiamos sus propiedades y le agregamos el array que acabamos de crear, haciendo un simple cambio en la propiedad android:entries y quedadndo algo asi: android:entries="@array/anime", si se fijan @array/anime es el nombre del array en <string-array name="anime"> del archivo array_anime.xml
- Agregamos un ImageView y un TextView para dejarlo mas vistoso (el ImagenView es para las imagenes y se encuentra en la seccion de palette/images & media ), al final nos tiene que quedar algo asi
- Ahora hay que crear o agregar las imagenes a usar para este proyecto en res/drawable (sino existe la creamos haciendo clic derecho en res y agregando un nuevo folder llamado drawable), para ello yo he utilizado las siguientes imagenes
Si se fijan hay un nombre correlativo similar a img01 ... img06, esto es porque hay que tener en cuenta el orden de como ira saliendo mas adelante, estas imagenes en nuestra app
(clic en la imagen para agrandarla)
- Luego comenzamos el codeo de la app, quedando de la siguiente manera
package com.nayosx.prueba; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ImageView; import android.widget.Spinner; public class Main extends Activity { /** Called when the activity is first created. */ Spinner cambiar;//se crea el objeto spinner ImageView img;//tambien el imagenview // Con el sigueinte arreglo se tomara el numero // entero que corresponde a cada una de las imagenes // este se encuentra en gen/R.java // esa clase no se toca para nada // es generada por el mismo proyecto int[] imagenes = {R.drawable.img01, R.drawable.img02, R.drawable.img03, R.drawable.img04, R.drawable.img05, R.drawable.img06}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initialize(); } /* * El siguente metod es usado para crear los objetos en concretos * asi como tambien los eventos que hara el spinner */ private void initialize() { img = (ImageView) findViewById(R.id.imageView1); //busca el imagenview del main.xml cambiar = (Spinner) findViewById(R.id.getIma); //busca el spinner del main.xml cambiar.setOnItemSelectedListener(new OnItemSelectedListener(){ //OnItemSelectedListener() se ejecuta al hacer clic en el spinner public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub //por medio de arg2 se obtiene un indice del array_anime.xml //y de esa forma lo pasa a img, para recuperar la imagen esperada img.setImageResource(imagenes[arg2]); } public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }); } }
- Ahora ya tenemos una app en donde usamos un spinner para cambiar una imagen
Pues bueno no es para nada dificil hacer esto, solo es de sentarse y ver que pasa en uno 10 minutos (y como 3 horas aprendiendo a usar github para subir el codigo), espero le sirva a alguien.
Si quieren bajar el código se los dejo aqui