1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| public class MySiteAdaptor extends ArrayAdapter<NewSite> {
private Context context;
private int layoutResourceId;
private List<NewSite> data;
private LayoutInflater mInflater;
private OnSelectedFromFragment onSelectedFromFragment;
public MySiteAdaptor(Context context, int layoutResourceId,
List<NewSite> data, OnSelectedFromFragment onSelectedFromFragment) {
super(context, layoutResourceId, data);
this.context = context;
this.layoutResourceId = layoutResourceId;
this.data = data;
this.onSelectedFromFragment = onSelectedFromFragment;
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
SiteHolder holder = null;
ImageView view;
Bitmap bmp = null;
BitmapFactory.Options options = new BitmapFactory.Options();
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = mInflater.inflate(layoutResourceId, parent, false);
holder = new SiteHolder();
holder.image = (ImageView) row.findViewById(R.id.imageView_site);
holder.informations = (TextView) row.findViewById(R.id.site_information);
holder.listOfImages = (LinearLayout) row.findViewById(R.id.sub_site_images);
row.setTag(holder);
} else {
holder = (SiteHolder) row.getTag();
}
final NewSite site = data.get(position);
if(null != site.getImage()){
options.inSampleSize = site.getImage().length;
Bitmap bmpSite = BitmapFactory.decodeByteArray(site.getImage(), 0, site.getImage().length, options);
holder.image.setImageBitmap(bmpSite);
}
if(null != site.getDescription())
holder.informations.setText(site.getDescription() + " " + position);
try {
if(site.getListOfChildren() != null && site.getListOfChildren().size() != 0){
Log.i("BitmapFactory", site.getListOfChildren().size() + " " + position);
for (NewSite newSite : site.getListOfChildren()) {
if(null != newSite.getImage()){
options.inSampleSize = site.getImage().length;
bmp = BitmapFactory.decodeByteArray(newSite.getImage(),0,newSite.getImage().length, options);
//holder.image.setImageBitmap(bmp);//(site.getImageSite());
view = new ImageView(context);
view.setLayoutParams(new LayoutParams(30, 20));
view.setPadding(2, 0, 2, 2);
view.setImageBitmap(bmp);
holder.listOfImages.addView(view);
}
}
}
} catch (OutOfMemoryError e) {
}
return row;
}
class SiteHolder {
ImageView image;
TextView informations;
LinearLayout listOfImages;
} |
Partager