Tutoriales gratuitos para el aprendizaje de la programacion informatica! Recuerda que si lo puedes imaginar... lo puedes programar!

GridView Android Studio

Crear una clase: MainAdapterInicio

Codigo:

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; 

public class MainAdapterInicio extends BaseAdapter {

private Context context;
private LayoutInflater inflater;
private String[] elementos;
private int[] imagen; 
public MainAdapterInicio(Context c,String[] elementos,int[] imagen){ 

context = c;

this.elementos = elementos;
this.imagen = imagen; } 
@Override public int getCount() {
return elementos.length;
@Override public Object getItem(int position) {
return null;
@Override public long getItemId(int position) {
return 0;
@Override public View getView(int position, View convertView, ViewGroup parent) { 
if (inflater == null){ 
inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
}
if (convertView == null){ 
convertView = inflater.inflate(R.layout.row_item_inicio,null); 
ImageView imageView = convertView.findViewById(R.id.image_View);
TextView textView = convertView.findViewById(R.id.text_view); 
imageView.setImageResource(imagen[position]);
textView.setText(elementos[position]); 
return convertView; } 
}

Crear un xml en la carpeta layout: row_item_inicio

Codigo TEXT:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:gravity="center"
 android:orientation="vertical"
 android:padding="16dp">

<ImageView 
android:id="@+id/image_View"
android:layout_width="150dp" 
android:layout_height="150dp" 
android:contentDescription="@string/descripcion"
 android:scaleType="fitXY" />

<TextView 
android:id="@+id/text_view"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="5dp"
 android:paddingLeft="3dp"
 android:paddingTop="3dp"
 android:paddingRight="3dp"
 android:paddingBottom="3dp"
 android:shadowColor="#020202"
 android:shadowDx="3"
 android:shadowDy="2"
 android:shadowRadius="1.8"
 android:text="@string/app_name"
 android:textColor="#FF9800" android:textSize="15sp" />

</LinearLayout>

Copiar en la carpeta drawable las imagenes que quieras que salgan en el Grid











En el archivo String:

<string name="descripcion">descripcion de la imagen</string> 
<array name="menu_principal">
<item>Estrellas</item>
<item>Ofertas</item>
<item>Combos</item>
<item>Menu</item>
<item>Reservaciones</item>
<item>Informacion</item

Codigo en el MainActivity:

Diseño xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity" android:orientation="vertical"> 

<GridView 
android:id="@+id/grid"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:cacheColorHint="@android:color/black"
 android:fastScrollEnabled="true"
 android:gravity="center"
 android:horizontalSpacing="10dp"
 android:numColumns="auto_fit"
 android:paddingLeft="8dp"
 android:paddingTop="8dp"
 android:paddingRight="8dp"
 android:paddingBottom="8dp"
 android:stretchMode="columnWidth"
 android:verticalSpacing="10dp">
</GridView> 
</LinearLayout>

Codigo en el Activity:

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView; 
public class MainActivity extends AppCompatActivity {

int[] imagen = {
R.drawable.ic_estrellas,
R.drawable.ic_camionh,
R.drawable.ic_combosh,
R.drawable.ic_chefh,
R.drawable.ic_reservacionh,
R.drawable.ic_infor};

@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final GridView gridView = findViewById(R.id.grid);
final String[] elementos = getResources().getStringArray(R.array.menu_principal);

MainAdapterInicio adapter = new MainAdapterInicio(this,elementos,imagen);
gridView.setAdapter(adapter);

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
switch (position) {

case 0:
//aqui lo que quieras que salga en la opcion 0
break;

case 1: 
//aqui lo que quieras que salga en la opcion 1
break;

case 2:
 //aqui lo que quieras que salga en la opcion 2
break;

case 3:
 //aqui lo que quieras que salga en la opcion 3
break;

case 4: 
//aqui lo que quieras que salga en la opcion 4
break;

case 5: 
//aqui lo que quieras que salga en la opcion 5
break; 

} } 
} }); 

Trabajo finalizado:






No hay comentarios:

Publicar un comentario