2016-11-23 6 views
-1

J'essaie d'utiliser Android GridView pour afficher 2 colonnes d'images.Android Gridview Faire des images plus grandes

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:numColumns="2" 
    android:verticalSpacing="5dp" 
    android:horizontalSpacing="5dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"/>  

Exécutez l'application sur un périphérique physique Samsung J2. La capture d'écran ressemble à ceci

App Screenshot

Aide!

  1. Je ne peux pas obtenir les images pour être plus grand - ils sont tous 200x150 - la capture d'écran ne semble pas près affichage 200x150. J'ai essayé toutes les options - mais la bonne.
  2. Je souhaite afficher un texte sous chaque image - GridView ne semble pas avoir d'option. Devrai-je utiliser le TableView?

Un grand merci

Iyer

+1

Vous pouvez utiliser l'adaptateur GridView personnalisé pour créer le texte sous chaque image. –

+0

utiliser l'adaptateur personnalisé GridView ou la vue de recyclage – Pavya

Répondre

2

oui mon ami, vous pouvez utiliser la mise en page personnalisée et un adaptateur qui s'étend BaseAdapter pour répondre à vos besoins. suivez les étapes ci-dessous.

==> cust_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center" 
android:orientation="vertical"> 

<ImageView 
    android:id="@+id/cga_iv" 
    android:layout_width="@dimen/Al_grid_image_width" 
    android:layout_height="@dimen/Al_grid_image_height" /> 

<TextView 
    android:id="@+id/cga_txt_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

</LinearLayout> 

==> cust_adpt.java

classe personnalisée qui étend BaseAdapter et mettre en œuvre ses méthodes toutes outrepassée

public class cust_adpt extends BaseAdapter { 

faire des changements dans la méthode getview comme suit.ici AlCover et AlBuckName sont mes arrayLists qui contiennent mes données et définit dans gridview pour ImageView et TextView respectivement.

@Override 
public View getView(int i, View v, ViewGroup viewGroup) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 

    View view = inflater.inflate(R.layout.cust_grid_album, null, true); 

    ImageView iv = (ImageView) view.findViewById(R.id.cga_iv); 

    TextView txtname = (TextView) view.findViewById(R.id.cga_txt_name); 


    //setting image 
    Glide.with(context).load(AlCover.get(i)).placeholder(android.R.color.white).centerCrop().into(iv); 


    //setting text 
    txtname.setText(AlBuckName.get(i)); 


    return view; 

} 

Et enfin, vous pouvez adapter simplement mettre dans votre imageData de activity.here et TextData sont ArrayLists qui contient des images et des textes respectivement.

Faites-moi savoir si vous rencontrez toujours un problème.

1

Essayez this like out! Je pense que ce très bon exemple de départ pour vous de faire ce que vous voulez.

J'espère que cela vous aidera.