public override View GetView(int position, View convertView, ViewGroup parent) { View rowView = convertView; //reuse view if (rowView == null) { rowView = _context.LayoutInflater.Inflate (Resource.Layout.PersonCustomLayout, parent, false); viewHolder = new ViewHolderItem (); viewHolder.txtTemName = rowView.FindViewById<TextView> (Resource.Id.lblPersonName); viewHolder.imgItem = rowView.FindViewById<ImageView> (Resource.Id.imgPerson); rowView.Tag = viewHolder; } else { viewHolder = (ViewHolderItem)rowView.Tag; } viewHolder.txtTemName.Text = _lstItem [position].PersonName; var option= ImageHelper.GetBitmapOptionsOfImageNonAsync ( _lstItem[position].PersonImage ); var bitmapSampled= ImageHelper.LoadScaledDownBitmapForDisplay ( _lstItem[position].PersonImage , option , 100 , 100 ); //to get cirlcle shape H*W should be same int intRoundPicResolution; if ( bitmapSampled.Height > bitmapSampled.Width ) //only to get circle shape intRoundPicResolution = bitmapSampled.Width; else intRoundPicResolution = bitmapSampled.Height; //set bitmap height and width bitmapSampled = Bitmap.CreateScaledBitmap ( bitmapSampled , intRoundPicResolution , intRoundPicResolution , false ); int imgRadius = ( intRoundPicResolution ) / 2; using ( var bitmapRoundedCorner =ImageHelper.GetRoundedCornerBitmap ( bitmapSampled , imgRadius ) ) { // if (viewHolder.imgItem != null && !viewHolder.imgItem.isrecycled)) // viewHolder.imgItem.RecycleBitmap (); viewHolder.imgItem.SetImageBitmap ( bitmapRoundedCorner ); } bitmapSampled.Dispose (); bitmapSampled = null; Java.Lang.JavaSystem.Gc (); return rowView; }
public override View GetView(int position, View convertView, ViewGroup parent) { View rowView = convertView; if (rowView == null) { //create new row view rowView = _context.LayoutInflater.Inflate(Resource.Layout.ItemCustomLayout, parent, false); viewHolder = new ViewHolderItem(); viewHolder.txtTemName = rowView.FindViewById <TextView> (Resource.Id.lblItemName); viewHolder.imgItem = rowView.FindViewById <ImageView> (Resource.Id.imgItem); viewHolder.chkItem = rowView.FindViewById <CheckBox> (Resource.Id.checkitem); viewHolder.Initialize(rowView); //to initialize listen for ImgView click //tag viewHolder instance to row view. rowView.Tag = viewHolder; } else { //re-use row view //fetch viewholder instance from the Tag attached to rowview viewHolder = (ViewHolderItem)rowView.Tag; } //Initialize click event //subscribe to event from viewholder ImgView click viewHolder.eventHandlerImgViewSelected = () => { // publish ImgView click event to ActivityClass if (ActionImgSelectedToActivity != null) { ActionImgSelectedToActivity(_lstItem[position].ItemName); } }; viewHolder.txtTemName.Text = _lstItem [position].ItemName; viewHolder.imgItem.SetImageResource(Resource.Drawable.imgItem); viewHolder.chkItem.Checked = lstSelectedItem.Contains(_lstItem [position].ItemName) ? true :false; viewHolder.chkItem.Tag = position; return(rowView); }