2017-02-09 1 views
0

Je suis utiliser une classe par le code ci-dessous pour gridview. comment je peux lisser mon défilement gridview par viewholder ou autre méthode? je veux juste mon défilement grille performance très bien. J'utilise ce gridview pour afficher les images et les noms et en cliquant sur l'élément eacj ouvrir une autre activité pour plus de détails sur.comment lisser mon gridview défilement dans Android?

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 CustomGrid extends BaseAdapter{ 

private Context mContext; 
private final String[] web; 
private final int[] Imageid; 


public CustomGrid(Context c, String[] web, int[] Imageid) { 
    mContext = c; 
    this.Imageid = Imageid; 
    this.web = web; 
} 
@Override 
public int getCount() { 
// TODO Auto-generated method stub 
    return web.length; 
} 
@Override 
public Object getItem(int position) { 
// TODO Auto-generated method stub 
    return null; 
} 
@Override 
public long getItemId(int position) { 
// TODO Auto-generated method stub 
    return 0; 
} 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
// TODO Auto-generated method stub 
    View grid; 
    LayoutInflater inflater = (LayoutInflater)   mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    grid = new View(mContext); 
    grid = inflater.inflate(R.layout.grid_item, null); 
    TextView textView = (TextView) grid.findViewById(R.id.grid_text); 
    ImageView imageView = (ImageView)grid.findViewById(R.id.grid_image); 
    textView.setText(web[position]); 
    imageView.setImageResource(Imageid[position]); 


    return grid; 
} 
} 
+0

Utiliser modèle viewHolder – d1vivek681065

+0

Comme une note à ce que @ d1vivek681065 déjà dit, vous devez lire http://stackoverflow.com/questions/11945563/how-listviews-recycling-mechanism-works. Assurez-vous juste que vous comprenez pourquoi c'était si lent. Fixer seulement le problème ne résoudra pas le problème réel –

Répondre

0

toujours essayer d'utiliser Motif ViewHolder pour les listes et enserre cela améliore les performances des listes et Grids:

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

    ViewHolder viewHolder = null; 
    if(convertView==null){ 
     viewHolder = new ViewHolder(); 
     convertView = inflater.inflate(R.layout.grid_item,parent,false); 

     convertView.setTag(viewHolder); 
    } 
    else { 
     viewHolder=(ViewHolder)convertView.getTag(); 
    } 
    viewHolder.image=(ImageView)convertView.findViewById(R.id.thumbnail); 
    viewHolder.title=(TextView)convertView.findViewById(R.id.title); 
    viewHolder.title.setText(Html.fromHtml(values.getPosts().get(position).getTitle())); 

    imageView.setImageResource(Imageid[position]); 
    return convertView; 
} 

private static class ViewHolder{ 
    public static ImageView image; 
    public static TextView title; 
}