mercredi 15 avril 2015

is there a way to load drawable to Imageview as soon as item shown on listview

Scroll grid view with plenty amount of local Images make my app crashes or at-least in good performance devices, scroll very Barely. I goggled for solution and find some good solutions are exist for remote Images like: Universal-Image-Loader that loading images from web and cashes them and manage scrolling. but I couldn't use that on my case.


this is my adapter that load images:



public class MyAdapter extends ArrayAdapter<StructureCase> {

private LayoutInflater mInflater = null;
public Context context;
public Class distinationActivity = null;



public MyAdapter(Context context, int textViewResourceId, List<StructureCase> objects) {
super(context, textViewResourceId, objects);
mInflater = LayoutInflater.from(context);
// mInflater = (LayoutInflater)G.currentActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

public static class ViewHolder {


public ImageView gem_img = null;
public TextView gem_name = null;


}



@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
final View v;

final StructureCase item = getItem(position);

if (convertView == null) {


convertView = this.mInflater.inflate(R.layout.my_grid_list, null);
//mInflater = (LayoutInflater)G.currentActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.my_grid_list, parent, false);
viewHolder = new ViewHolder();
convertView.setTag(viewHolder);


viewHolder.gem_img = (ImageView) convertView.findViewById(R.id.imageView_mygrid_list);
viewHolder.gem_name = (TextView) convertView.findViewById(R.id.textView_mygrid_list);
viewHolder.gem_name.setTypeface(G.typeFacePrs);



} else {
viewHolder = (ViewHolder) convertView.getTag();

}




viewHolder.gem_name.setText(item.g_name);


int id = G.currentActivity.getResources().getIdentifier(item.g_image+"_tmb", "drawable", G.currentActivity.getPackageName());

//TODO i should to some thing to smoothing image scrolls

if(id != 0){
Drawable drawable = G.currentActivity.getResources().getDrawable(id);
viewHolder.gem_img.setImageDrawable(drawable);
}else{
viewHolder.gem_img.setImageResource(R.drawable.gem1);

}


viewHolder.gem_img.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent i = new Intent(G.currentActivity, GemDetaileActivity.class);
i.putExtra("id", item.g_ID);
i.putExtra("content", item.g_text);
i.putExtra("name", item.g_name);
i.putExtra("name_en", item.g_name_en);
i.putExtra("image", item.g_image);
i.putExtra("image_count", item.g_image_count);
i.putExtra("hadis", item.g_hadis);
i.putExtra("good_for", item.g_good_for);
G.currentActivity.startActivity(i);
G.currentActivity.overridePendingTransition(R.anim.in_left_2_right, R.anim.out_left_2_right);

}
});


return convertView;
}

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


I think my problem is for pre-Loading all Images and if there is a way to load Drawable to Image view as soon as show it's item in scroll, my problem will solve.


Aucun commentaire:

Enregistrer un commentaire