2017-10-09 1 views
0

Je suis nouveau sur Android. Je veux construire une grille basée sur le nombre total de lignes et de colonnes et afficher dans la vue. Après la création d'une grille, j'ai besoin de placer l'icône dans l'un de la grille. L'icône proviendra de l'URL du serveur. La grille devrait être comme ci-dessous. enter image description hereComment créer des grilles en utilisant Total des lignes et des colonnes dans Android dynamiquement

Cette grille créée doit tenir dans l'écran. Comment je fais ça? Quelqu'un peut-il me donner un échantillon de code? Merci d'avance!!!

Répondre

1

res/layout/gridview_android_example_with_image.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"> 

    <GridView 
     android:id="@+id/gridview_android_example" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:columnWidth="100dp" 
     android:gravity="center" 
     android:minHeight="90dp" 
     android:numColumns="auto_fit" 
     android:stretchMode="columnWidth" /> 

</LinearLayout> 

AndroidGridViewDisplayImages.java

import android.content.Context; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import android.widget.Toast; 

public class AndroidGridViewDisplayImages extends AppCompatActivity { 

    GridView androidGridView; 


// Dummy Array of images (Replace with your own values) 
    Integer[] imageIDs = { 
      R.drawable.email, R.drawable.mobile, R.drawable.alram, 
      R.drawable.android, R.drawable.wordpress, R.drawable.web, 
      R.drawable.email, R.drawable.mobile, R.drawable.alram, 
      R.drawable.android, R.drawable.wordpress, R.drawable.web, 
      R.drawable.email, R.drawable.mobile, R.drawable.alram, 
      R.drawable.android, R.drawable.wordpress, R.drawable.web, 
    }; 

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

     androidGridView = (GridView) findViewById(R.id.gridview_android_example); 
     androidGridView.setAdapter(new ImageAdapterGridView(this)); 

     androidGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, 
            View v, int position, long id) { 
       Toast.makeText(getBaseContext(), "Grid Item " + (position + 1) + " Selected", Toast.LENGTH_LONG).show(); 
      } 
     }); 

    } 

    public class ImageAdapterGridView extends BaseAdapter { 
     private Context mContext; 

     public ImageAdapterGridView(Context c) { 
      mContext = c; 
     } 

     public int getCount() { 
      return imageIDs.length; 
     } 

     public Object getItem(int position) { 
      return null; 
     } 

     public long getItemId(int position) { 
      return 0; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      ImageView mImageView; 

      if (convertView == null) { 
       mImageView = new ImageView(mContext); 
       mImageView.setLayoutParams(new GridView.LayoutParams(130, 130)); 
       mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
       mImageView.setPadding(16, 16, 16, 16); 
      } else { 
       mImageView = (ImageView) convertView; 
      } 
      mImageView.setImageResource(imageIDs[position]); 
      return mImageView; 
     } 
    } 
} 
+0

yo Merci beaucoup @Akshay Chopde. Je ne veux pas afficher les images dans la grille. Une seule icône que je dois placer dans la grille./* Entier [] imageIDs = {} */ceci est un tableau vide dans mon cas. Comment puis-je construire une grille sans cela? Est-ce que ça marchera? –

+0

Vous avez demandé une liste de données contenant l'ensemble des images. Alors que vous pouvez itérer à la taille de la liste et définir chaque image dans une liste à la cellule de la grille. –