Android implementando ViewPager en GridView Tutorial

Cree un nuevo proyecto en Eclipse  File  >  New  >  Android Application Project. Complete los detalles y nombre su proyecto  ViewPagerGridView .

Nombre de la aplicación:  ViewPagerGridView

Nombre del proyecto:  ViewPagerGridView

Nombre del paquete:  com.androidbegin.viewpagergridview

Abra su  MainActivity .java  y pegue el siguiente código.

Actividad principal .java

paquete com.androidbegin.viewpagergridview;

importar android.os.Bundle;
importar android.app.Actividad;
importar android.content.Intent;
importar android.view.Menú;
importar android.widget.AdapterView;
importar android.widget.AdapterView.OnItemClickListener;
importar android.widget.GridView;
importar android.widget.Toast;
importar android.view.View;

clase pública MainActivity extiende Actividad {

    @Anular
    public void onCreate (Paquete guardadoInstanceState) {
        super.onCreate(estadoDeInstanciaGuardado);
        // Establecer título para GridView
        setTitle("GridView");
        // Obtener la vista de grid_view.xml
        setContentView(R.layout.grid_view);

        // Establecer las imágenes de ImageAdapter.java a GridView
        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(nuevo ImageAdapter(este));

        // Escuchar el clic del elemento GridView
        gridview.setOnItemClickListener(nuevo OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            	// Inicie ImageViewPager.java al seleccionar GridView Item
            	Intent i = new Intent(getApplicationContext(), ImageViewPager.class);

            	// Mostrar un mensaje de brindis simple para la posición del elemento
            	Toast.makeText(MainActivity.this, "" + posición, Toast.LENGTH_SHORT).show();

            	// Enviar la posición del clic a ImageViewPager.java usando la intención
            	i.putExtra("id", posición);

                // Iniciar ImageViewPager
                iniciarActividad(i);
            }
        });
    }

    // No usar el menú de opciones para este tutorial
    @Anular
    public boolean onCreateOptionsMenu(Menú menú) {
        getMenuInflater().inflate(R.menu.actividad_principal, menú);
        devolver verdadero;
    }
}

Esta actividad recupera imágenes de un adaptador de imágenes y las establece en la vista de cuadrícula y, al hacer clic en el elemento de la vista de cuadrícula, se capturará la posición y la imagen seleccionadas y pasará a una nueva actividad. Un mensaje de brindis mostrará la posición actual del elemento en el que se hizo clic.

A continuación, cree un diseño gráfico XML para su MainActivity. Vaya a  res  >  diseño  > Haga clic con el botón derecho en el  diseño  >  Nuevo  >  Archivo XML de Android

Nombre su nuevo archivo XML  grid_view.xml  y pegue el siguiente código.

grid_view .xml

<?versión xml="1.0" codificación="utf-8"?>
<GridView xmlns_android="http://schemas.android.com/apk/res/android"
    android_id="@+id/vista de cuadrícula"
    android_layout_width="fill_parent"
    android_layout_height="fill_parent"
    android: ancho de columna = "90dp"
    android_numColumns="auto_fit"
    android: espacio vertical = "10dp"
    android: espacio horizontal = "10dp"
    android_stretchMode="columnWidth"
    android_gravedad="centro"
/>

Hemos preparado algunas imágenes de muestra para este tutorial. Inserte sus imágenes de muestra descargadas en su  res  >  drawable-hdpi.

Imágenes de muestra

A continuación, cree una clase de adaptador de imagen. Vaya a  Archivo  >  Nuevo  >  Clase  y asígnele el nombre  ImageAdapter .java. Seleccione su paquete llamado  com.androidbegin. viewpagergridview  y haga clic en  Finalizar .

Abra su  ImageAdapter .java  y pegue el siguiente código.

Adaptador de imagen .java

paquete com.androidbegin.viewpagergridview;

importar android.content.Context;
importar android.view.View;
importar android.view.ViewGroup;
importar android.widget.BaseAdapter;
importar android.widget.ImageView;

clase pública ImageAdapter extiende BaseAdapter {
    Contexto privado mContexto;

    ImageAdapter público (Contexto c) {
        mContexto = c;
    }

    public int getCount() {
        devuelve mThumbIds.longitud;
    }

    objeto público getItem (posición int) {
    	devuelve mThumbIds[posición];
    }

    getItemId largo público (posición int) {
        devolver 0;
    }

    // Crear un nuevo ImageView para cada elemento al que hace referencia el adaptador
    public View getView (posición int, View convertView, ViewGroup parent) {
        Vista de imagen Vista de imagen;
        if (convertView == null) { // Si no se recicla, inicializa algunos atributos
            imageView = new ImageView(mContext);
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        } más {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mThumbIds[posición]);
        volver imageView;
    }

    // Referencias a nuestras imágenes en res > dibujable
    entero público[] mThumbIds = {
            R.dibujable.muestra_0, R.dibujable.muestra_1,
            R.dibujable.muestra_2, R.dibujable.muestra_3,
            R.dibujable.muestra_4, R.dibujable.muestra_5,
            R.dibujable.muestra_6, R.dibujable.muestra_7,
            R.dibujable.muestra_8, R.dibujable.muestra_9,
            R.dibujable.muestra_10, R.dibujable.muestra_11,
            R.dibujable.muestra_12, R.dibujable.muestra_13,
            R.dibujable.muestra_14, R.dibujable.muestra_15,
            R.dibujable.muestra_16, R.dibujable.muestra_17,
            R.dibujable.muestra_18
    };
}

Esta clase de adaptador de imagen recupera las imágenes de la carpeta dibujable y las establece en las vistas de imagen.

A continuación, cree una clase de buscapersonas de vista de imagen. Vaya a  Archivo  >  Nuevo  >  Clase  y asígnele el nombre  ImageViewPager .java. Seleccione su paquete llamado  com.androidbegin. viewpagergridview  y haga clic en  Finalizar .

Abra su  ImageViewPager .java  y pegue el siguiente código.

ImageViewPager .java

paquete com.androidbegin.viewpagergridview;

importar java.util.ArrayList;
importar java.util.List;

importar android.app.Actividad;
importar android.content.Intent;
importar android.os.Bundle;
importar android.support.v4.view.ViewPager;
importar android.widget.ImageView;

la clase pública ImageViewPager extiende la actividad {
	// Declarar variable
	posición int;

	@Anular
	public void onCreate (Paquete guardadoInstanceState) {
		super.onCreate(estadoDeInstanciaGuardado);
		// Establecer título para el ViewPager
		setTitle("Ver Paginador");
		// Obtener la vista de view_pager.xml
		setContentView(R.layout.view_pager);

		// Recuperar datos de MainActivity en el evento de clic en el elemento
		Intención p = getIntent();
		posición = p.getExtras().getInt("id");

		ImageAdapter imageAdapter = nuevo ImageAdapter(esto);
		List<ImageView> imágenes = new ArrayList<ImageView>();

		// Recuperar todas las imágenes
		for (int i = 0; i <adaptador de imagen.getCount(); i++) {
			ImageView imageView = new ImageView(esto);
			imageView.setImageResource(imageAdapter.mThumbIds[i]);
			imageView.setScaleType(ImageView.ScaleType.CENTER);
			imágenes.add(imageView);
		}

		// Establecer las imágenes en ViewPager
		ImagePagerAdapter pageradapter = new ImagePagerAdapter(imágenes);
		ViewPager viewpager = (ViewPager) findViewById(R.id.pager);
		viewpager.setAdapter(pageradapter);
		// Mostrar imágenes siguiendo la posición
		viewpager.setCurrentItem(posición);
	}
}

Esta clase recupera todas las imágenes del adaptador de imágenes utilizando la intención y pasa la imagen seleccionada actual a una vista de imagen.

A continuación, cree una clase de buscapersonas de vista de imagen. Vaya a  Archivo  >  Nuevo  >  Clase  y asígnele el nombre  ImagePagerAdapter .java. Seleccione su paquete llamado  com.androidbegin. viewpagergridview  y haga clic en  Finalizar .

Abra su  ImagePagerAdapter .java  y pegue el siguiente código.

ImagePagerAdapter .java

paquete com.androidbegin.viewpagergridview;

importar java.util.List;

importar android.support.v4.view.PagerAdapter;
importar android.view.View;
importar android.view.ViewGroup;
importar android.widget.ImageView;

clase pública ImagePagerAdapter extiende PagerAdapter {

    lista privada<ImageView> imágenes;

    ImagePagerAdapter público (Lista de imágenes <ImageView>) {
        this.images = imágenes;
    }

    @Anular
    public Object instantiateItem (contenedor ViewGroup, posición int) {
        ImageView imageView = imágenes.get(posición);
        contenedor.addView(imageView);
        volver imageView;
    }

    @Anular
    public void destroyItem (contenedor ViewGroup, posición int, objeto Object) {
        contenedor.removeView(imágenes.get(posición));
    }

    @Anular
    public int getCount() {
        devolver imágenes.tamaño();
    }

    @Anular
    public boolean isViewFromObject(Ver vista, Objeto o) {
        regresar vista == o;
    }
}

Esta clase ayuda a eliminar e insertar imágenes en la vista de imagen mientras se voltea el visor hacia la izquierda o hacia la derecha.

A continuación, cree un diseño gráfico XML para su visor. Vaya a  res  >  diseño  > Haga clic con el botón derecho en el  diseño  >  Nuevo  >  Archivo XML de Android

Nombre su nuevo archivo XML  view_pager.xml  y pegue el siguiente código.

ver_paginador .xml

<?versión xml="1.0" codificación="utf-8"?>
<RelativeLayout xmlns_android="http://schemas.android.com/apk/res/android"
    xmlns_herramientas="http://esquemas.android.com/herramientas"
    android_layout_width="match_parent"
    android_layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android_id="@+id/localizador"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content" >
    </android.support.v4.view.ViewPager>

</RelativeLayout>

A continuación, cambie el nombre y los textos de la aplicación. Abra su  strings.xml  en su carpeta  res > valores  y pegue el siguiente código.

cadenas.xml

<recursos>

    <string name="app_name">ViewPager GridView</string>
    <string name="hello_world">¡Hola mundo!</string>
    <string name="menu_settings">Configuración</string>
    <string name="title_activity_main">ViewPager GridView</string>

</recursos>

En su  AndroidManifest.xml , debemos declarar una actividad. Abra su  AndroidManifest.xml  y pegue el siguiente código.

AndroidManifest.xml

<manifiesto xmlns_android="http://schemas.android.com/apk/res/android"
    paquete="com.androidbegin.viewpagergridview"
    android_versionCode="1"
    android_versionName="1.0" >

    <usos-sdk
        android_minSdkVersion="8"
        android_targetSdkVersion="15" />

    <aplicación
        android_icono="@dibujable/ic_launcher"
        android_etiqueta="@cadena/nombre_aplicación"
        android_tema="@estilo/AppTheme" >
        <actividad
            android_nombre=".Actividad principal"
            android_label="@cadena/título_actividad_principal" >
            <intent-filter>
                <acción android_name="android.intent.action.MAIN" />

                <categoría android_name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </actividad>
        <actividad android_name=".ImageViewPager" >
        </actividad>
    </aplicación>

</manifiesto>