2017-05-01 6 views
0

Ich habe versucht, benutzerdefinierte Gridview zu machen, so dass ich das Aussehen von wie ein einzelnes Gitter aussehen könnte, aber ich war nicht erfolgreich.So erstellen Sie benutzerdefinierte GridView

Ich konnte eine Gridview erstellen, die nur das Bild und Text mit Volley erhalten würde. Und Ich habe versucht, die Adapter-Klasse zu manipulieren und nach Tutorials suchen, aber leider kein Glück.

Können Sie mir helfen, wie würde ich es tun können und was mache ich falsch? Danke im Voraus!

Das ist meine Adapter Klasse GridViewAdaper:

public class GridViewAdapter extends BaseAdapter { 

    private ImageLoader imageLoader; 


    private Context context; 

    private ArrayList<String> images; 
    private ArrayList<String> names; 

    public GridViewAdapter (Context context, ArrayList<String> images, ArrayList<String> names){ 
     this.context = context; 
     this.images = images; 
     this.names = names; 
    } 

    @Override 
    public int getCount() { 
     return images.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return images.get(position); 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater inflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView=inflater.inflate(R.layout.list_item, null); 

     TextView name=(TextView)convertView.findViewById(R.id.textViewName); 
     ImageView icon=(NetworkImageView)convertView.findViewById(R.id.imageViewHero); 

     imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader(); 
     imageLoader.get(images.get(position), ImageLoader.getImageListener(icon, R.mipmap.ic_launcher, android.R.drawable.ic_dialog_alert)); 

     icon.setImageResource(images.get(position),imageLoader); 

     name.setText(names.get(position)); 

     icon.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     icon.setLayoutParams(new GridView.LayoutParams(200,200)); 

     return convertView; 
    } 
} 

Antwort

0

Nun habe ich das Problem schon gelöst: D

Adapter Klasse:

public class GridViewAdapter extends BaseAdapter { 

private ImageLoader imageLoader; 

private Context context; 

private ArrayList<String> images; 
private ArrayList<String> names; 

public GridViewAdapter (Context context,ArrayList<String> images, 
ArrayList<String> names){ 
    this.context = context; 
    this.images = images; 
    this.names = names; 
} 

@Override 
public int getCount() { 
    return images.size(); 
} 

@Override 
public Object getItem(int position) { 
    return images.get(position); 
} 

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

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    View grid; 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    grid = inflater.inflate(R.layout.list_item, null); 

    TextView title = (TextView) grid.findViewById(R.id.textViewName); 
    NetworkImageView thumbNail = (NetworkImageView) grid.findViewById(R.id.imageViewHero); 

    imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader(); 
    imageLoader.get(images.get(position), ImageLoader.getImageListener(thumbNail, R.mipmap.ic_launcher, android.R.drawable.ic_dialog_alert)); 

    title.setText(names.get(position)); 
    thumbNail.setImageUrl(images.get(position), imageLoader); 


    return grid; 
} 
} 
Verwandte Themen