Supponiamo di avere 6 oggetti, c'è qualche possibilità o modo di posizionare 3 oggetti sul lato sinistro della fila e 3 oggetti sul lato destro della fila in vista griglia e alla fine abbiamo uno spazio tra di loro.
In realtà ho provato a dare una spaziatura orizzontale dinamica dopo l'adattatore, ma non mi ha aiutato. L'immagine è allegata
package com.nxd.cap.Adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.nxd.cap.R;
import java.util.ArrayList;
public class GalleryAdapter extends BaseAdapter {
Context context;
int[] images = new int[]{R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4,
R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8,
R.drawable.image1, R.drawable.image2};
public GalleryAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int i) {
return images[i];
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null){
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.gallery_item, null);
ViewHolder viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView)view.findViewById(R.id.imageView);
view.setTag(viewHolder);
}
ViewHolder viewHolder = (ViewHolder) view.getTag();
// Picasso.with(context).load(images[i]).into(viewHolder.image);
GridView gridView = (GridView)viewGroup;
if (i == images.length/2) {
gridView.setHorizontalSpacing(100);
}
viewHolder.imageView.setImageResource(images[i]);
return view;
}
static class ViewHolder {
ImageView imageView;
}
}
risposte:
0 per risposta № 1quando hai usato gridView puoi impostare il numero di colonne. se hai bisogno solo di due colonne a sinistra e a destra impostate sotto il codice.
gridView.setNumColumns(2);