Tutorial sin fin - Android - Función de vista de cuadrícula

Android GridView muestra elementos en una cuadrícula de desplazamiento bidimensional (filas y columnas), y los elementos de la cuadrícula no están necesariamente programados, pero se insertan automáticamente en el diseño mediante un ListAdapter.

Vista en cuadrícula

Vista de cuadrícula - Vista de cuadrícula

ListView y GridView son subclases de AdapterView que se pueden completar vinculándolos a un Adaptador que toma datos de una fuente externa y crea una vista que representa cada entrada de datos.

Vista de cuadrícula - Propiedades

Las siguientes son las propiedades importantes específicas de GridView:

No Señor Atributo y descripción
1

androide: identificación

Este es el ID que identifica de forma única el diseño.

2

android: ancho de columna

Esto especifica un ancho fijo para cada columna. Puede ser px, dp, sp, in o mm.

3

Android: gravedad

Especifica la ubicación dentro de cada celda. Los valores posibles son arriba, abajo, izquierda, derecha, centro, centro_vertical, centro_horizontal, etc.

4

android: espaciado horizontal

Define el espaciado horizontal predeterminado entre columnas. Puede ser px, dp, sp, in o mm.

5

android:numColumnas

Define el número de columnas a mostrar. Puede ser un valor entero como "100" o auto_fit, que indica mostrar tantas columnas como sea posible para llenar el espacio disponible.

6

android: modo estiramiento

Define cómo debe estirarse la columna para llenar el espacio vacío disponible (si lo hay). Este debe ser uno de los dos valores siguientes:

  • ninguno: deshabilita el estiramiento.

  • spacingWidth: extiende el espacio entre cada columna.

  • columnWidth: cada columna se estira por igual.

  • spacingWidthUniform: el espacio entre cada columna se estira uniformemente. .

7

android: espaciado vertical

Define el espaciado vertical predeterminado entre líneas. Puede ser px, dp, sp, in o mm.

Vista de cuadrícula - ejemplo

Este ejemplo lo guía a través de pasos simples para mostrarle cómo crear su propia aplicación de Android usando GridView.

El siguiente es el contenido del archivo de actividad principal modificado src/com.example.helloworld/MainActivity.java. Este archivo puede incluir todos los métodos básicos del ciclo de vida.

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.GridView;

public class MainActivity extends Activity {
   
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
   
   
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      GridView gridview = (GridView) findViewById(R.id.gridview);
      gridview.setAdapter(new ImageAdapter(this));
   }
}

A continuación se muestra el contenido del archivo res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/gridview"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent"
   android:columnWidth="90dp"
   android:numColumns="auto_fit"
   android:verticalSpacing="10dp"
   android:horizontalSpacing="10dp"
   android:stretchMode="columnWidth"
   android:gravity="center"
/>

A continuación se muestra el contenido de res/values/strings.xml para definir dos nuevas constantes:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">HelloWorld</string>
   <string name="action_settings">Settings</string>
</resources>

A continuación se muestra el contenido del archivo src/com.example.helloworld/ImageAdapter.java:

package com.example.helloworld;

import android.content.Context;

import android.view.View;
import android.view.ViewGroup;

import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
   
   
   private Context mContext;
   
   //Constructor
   public ImageAdapter(Context c) {
   
   
      mContext = c;
   }
   
   public int getCount() {
   
   
      return mThumbIds.length;
   }

   publicgetItem(int position) {
   
   
      return null;
   }

   public long getItemId(int position) {
   
   
      return 0;
   }
   
   //为 Adapter 引用的每个项目创建一个新的 ImageView
   public View getView(int position, View convertView, ViewGroup parent) {
   
   
      ImageView imageView;
      
      if (convertView == null) {
   
   
         imageView = new ImageView(mContext);
         imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
         imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
         imageView.setPadding(8, 8, 8, 8);
      } 
      else 
      {
   
   
         imageView = (ImageView) convertView;
      }
      imageView.setImageResource(mThumbIds[position]);
      return imageView;
   }
   
   //Keep all Images in array
   public Integer[] mThumbIds = {
   
   
      R.drawable.sample_2, R.drawable.sample_3,
      R.drawable.sample_4, R.drawable.sample_5,
      R.drawable.sample_6, R.drawable.sample_7,
      R.drawable.sample_0, R.drawable.sample_1,
      R.drawable.sample_2, R.drawable.sample_3,
      R.drawable.sample_4, R.drawable.sample_5,
      R.drawable.sample_6, R.drawable.sample_7,
      R.drawable.sample_0, R.drawable.sample_1,
      R.drawable.sample_2, R.drawable.sample_3,
      R.drawable.sample_4, R.drawable.sample_5,
      R.drawable.sample_6, R.drawable.sample_7
   };
}

Ejecutar Icono de ejecución de eclipsebarra de herramientas. Android Studio instala la aplicación en su AVD y la inicia. Si todo está bien con la configuración y la aplicación, aparecerá en la ventana "Emulador".

Diseño de vista de cuadrícula de Android

Ejemplo de subactividad

A continuación se muestra el contenido del archivo de actividad principal modificado src/com.example.helloworld/MainActivity.java, que puede incluir todos los métodos básicos del ciclo de vida.

package com.example.helloworld;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import android.view.Menu;
import android.view.View;

import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;

public class MainActivity extends Activity {
   
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
   
   
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      GridView gridview = (GridView) findViewById(R.id.gridview);
      gridview.setAdapter(new ImageAdapter(this));
      
      gridview.setOnItemClickListener(new OnItemClickListener() {
   
   
         public void onItemClick(AdapterView<?> parent, 
            View v, int position, long id){
   
   
            //Send intent to SingleViewActivity 
            Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
            //Pass image index
            i.putExtra("id", position);
            startActivity(i);
         }
      });
   }
}

A continuación se muestra el contenido del nuevo archivo de actividad src/com.example.helloworld/SingleViewActivity.java:

package com.example.helloworld;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;

public class SingleViewActivity extends Activity {
   
   
   @Override
   public void onCreate(Bundle savedInstanceState) {
   
   
      super.onCreate(savedInstanceState);
      setContentView(R.layout.single_view);
      
      //Get intent data
      Intent i = getIntent();
      
      //Selected image id
      int position = i.getExtras().getInt("id");
      ImageAdapter imageAdapter = new ImageAdapter(this);
      
      ImageView imageView = (ImageView) findViewById(R.id.SingleView);
      imageView.setImageResource(imageAdapter.mThumbIds[position]);
   }
}

A continuación se muestra el contenido del archivo res/layout/single_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >
   
<ImageView android:id="@+id/SingleView"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"/>
 
</LinearLayout>

A continuación se muestra el contenido de AndroidManifest.xml para definir dos nuevas constantes:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.helloworld">
      
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.helloworld.MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
   
      <activity android:name=".SingleViewActivity"></activity>
   
   </application>
</manifest>

Luego haga clic en la Icono de eclipse corriendobarra de herramientas Ejecutar. Android Studio instalará la aplicación en su AVD y la iniciará, si todo está bien con la configuración y la aplicación, se mostrará en la ventana "Emulador".

Diseño de vista de cuadrícula de Android

Ahora, si hace clic en cualquiera de estas imágenes, se mostrará como una sola imagen como:

Diseño de GridView único de Android

Función Grid View en Android - Wuya Tutorial Network Wuya Tutorial Network proporciona Android GridView para mostrar elementos en una cuadrícula de desplazamiento bidimensional (filas y columnas), y los elementos de la cuadrícula no están necesariamente programados, pero... https: / /www.learnfk .com/android/android-grid-view.html

Supongo que te gusta

Origin blog.csdn.net/w116858389/article/details/132586409
Recomendado
Clasificación